This is a discussion on [Fwd: sqlcmd-72.00 compile problems] within the Informix forums, part of the Database Server Software category; -->...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Reposted as plain text. ----- Original Message ----- From: "Sosnowski Robert" <robert.sosnowski@bzwbk.pl> To: <Mark.Fenbers@noaa.gov> Sent: Thursday, October 09, 2003 3:24 PM Subject: Re: sqlcmd-72.00 compile problems I can't write to newsgroup because of corporate security policy. I am able to mail only. I've also had similar problems and I've found a solution. First of all CSDK 2.81.UC2 is required for RH9. Earlier versions have a problem with: 'Incorrectly built binary which accesses errno, h_errno or _res directly. Needs to be fixed.' After I've installed 2.81.UC2 I was able to run esql without a problems. However I've also got "undefined reference to `__ctype_b'" problem. There are two solutions: - first one is to compile app on RH8 and resulting binary should work on RH9 too; I haven't tested this - it is just conclusion made on RedHat explanation how they understand binary compatibility. Second one: you should install glibc version 2.3.2-5. Following rpms are required: - libc-devel-2.3.2-5 - glibc-common-2.3.2-5 - glibc-2.3.2-5 This rpms were available with the first RH9 version available. When I've installed glibc 2.3.2-5 I was able to link apps without problems. It is not the end: such apps ends with "Segmentation fault" when trying to connect to the database. You should set environment variable too: export LD_ASSUME_KERNEL=2.4.1 After this there is no problems. Cost of this solution: some binaries do not want to run with this environment setting. For example, diff returns a message: diff: /lib/i686/libpthread.so.0: version `GLIBC_2.3.2' not found (required by /lib/librt.so.1) So you have to open second telnet/xterm session : one for running your Informix apps and second for binaries like diff. Setting LD_ASSUME_KERNEL in system startup script or in /etc/profile is not wise: GNOME and KDE will not run with this. I've check also that LD_ASSUME_KERNEL does not help with standard RH9 glibc - problem with linking. So I have a solution. I've also have got explanation for this problems. People implementing glibc have created new different localization algorithms starting with glibc version 2.3.2. In previous versions C functions like toupper, tolower were implemented as macro referencing internal __ctype_b function. In 2.3.2 it is a macro referencing __ctype_b_loc. That is ok - new improvment is welcome. However they claim also that for some reasons it was not possible to still support old __ctype_b. And that there is no return to the old localization model. RH9 claims officially that this should not be a problem. This is because old binaries should still work on RH9. With new applications it should not be a problem too: it is enough to compile new app on RH9. An issue with CSDK is when Informix libs created on earlier RedHat are linked with .o files created on RH9. Conclusion: RedHat should be blamed for this. Solution can come only from Informix. Final solution is to got CSDK recompiled on RH9. In theory it is just simple recompilation from same sources without any changes. For Informix this is a small problem - to support different CSDKs for different glibc versions. Also recompiled version requires testing. I've collected this information from many sources on the Internet. I hope that I've repeated all this here without mistakes. References: http://www.puschitz.com/InstallingOracle9i.html http://www.puschitz.com/rh9_gcs_download/ Regards, Robert Sosnowski IT specialist CK BZ WBK, e-mail: Robert.Sosnowski@bzwbk.pl ul. Pl. Andersa 5, 61-894 Poznan phone +48 61 856 53 43 fax +48 61 856 52 36 |