On Feb 28, 2008, at 9:03 , Yoshiki Ohshima wrote:
Uh-oh! FC6's gcc introduced a new hash by default in FC6 which results in FP exception on older FC and other linux distributions. If you cannot avoid FC6+, use "-Wl,--hash-style=sysv" or "-Wl,--hash-style=both" to generate compatible executables. The hash-style option is specific to FC6+ and won't be recognized by other gcc so you cannot make a permanent change in the Makefile. You may want to do:
$ make XCFLAGS="-Wl,--hash-style=sysv" XLDFLAGS="--hash-style=sysv"
To check: $ readelf -l 3.9-12/squeak | grep hash 02 .interp .note.ABI-tag .gnu.hash .dynsym .dynstr ^^^^^^ causes FP exception. $ readelf -l 3.9-12/squeak | grep hash 02 .interp .note.ABI-tag .hash .dynsym .dynstr ^^^^ compatible one
Ah, it was a completely known problem, then. OLPC's suggested development environment is FC and we are just using it but I didn't know about this. If the binary is fine on XO, probably we can use the option and have less headache.
So we'd need to add "-Wl,--hash-style=both". Can someone think of a way to make AutoConf detect the availability of that option? Maybe via AC_TRY_LINK()?
- Bert -