Il 17/06/2016 16:47, Alex Peshkoff ha scritto:
> On 06/17/2016 04:12 PM, Fulvio Senore wrote:
>> I have developed a couple of open source programs that use Firebird as
>> an embedded database. The programs are some years old so they use
>> version 2.1.
>>
>> I am using an embedded setup under Linux with a copy of Firebird that I
>> compiled at the time and everything worked fine until now. I compiled in
>> an old distribution and I created an archive file that contained
>> everything is needed to run the programs: in this way I have been able
>> to have a single file that worked on every distribution. I do not have
>> the resources to build custom versions for different distributions.
>>
>> Now some users are reporting that the program does not run under newer
>> distributions because those distros ship with libncurses 6 and firebird
>> has been built against version 5.
>> The problem can be solved by installing the libncurses 5 package but it
>> looks like this package is not available under Arch, for example.
>> Moreover not all users are experienced enough to install that package.
>>
>> Of course I might build Firebird in a distribution using libncurses 6
>> but this would require doubling the effort and users ought to know which
>> version to download.
>>
>> I think that a solution might be to statically link libncurses with
>> Firebird but I don't know if it would work.
>> I checked and the following files link to libncurses:
>>
>> libfbembed.so
>> intl/fbintl
>> bin/fb_lock_mgr
>
> Not sure for 2.1 build process (unsupported version, sorry) but the only
> binary that actually needs curses is isql for readline's command line
> editor.
>
>> do you know if it is safe to statically link libncurses?
>
> as far as I know yes
>
>> My Linux knowledge is rather limited: if statically linking is safe do
>> you have suggestions on how to do it? Should I change something in the
>> makefiles
>
> yes
> replace -lncurses with /usr/lib/libncurses.a (or how is it called on
> your box)
>

Thank you for your answer. I have spent some time trying to do it but I 
have not been able to force the makefile to use the static ncurses 
library instead of the so file. Unfortunately my knowledge of the build 
chain is very limited.

May anybody suggest me how to force the make command to use 
/usr/lib/libncurses.a instead of -lncurses?

I am almost desperate enough to extract the linker command from the make 
log, edit it and execute it manually. I just hope to find a better way.

Thanks in advance

Fulvio Senore

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to