After successfully compiling ELF binaries for PROJ.4 (map projections
conversion package), I followed these instructions to test for
"braindead" libraries, which failed. I think this may be of some
interest to the maintainers of the libraries. I must admit, I haven't
a clue which library is involved.
> Check /usr/include/math.h for prototype of hypot. If missing it is
> probably not in libm.a and it is necessary to use supplied version.
I think hypot was present.
> make install HYPOT='$L(hypot.o)'
> make install HYPOT='$L(hypot.o)' STRTOD='$L(strtod.o)'
> To check for brain damaged versions of strtod try the following after
> using the local system's version (default):
> proj +proj=poly +ellps=clrk66 +no_defs <<EOF
> 3.5 33.25
> 3d30 33d15
> Both geographic coordinates should produce the same cartesian result.
> If not, then it is almost a certainty that libc.a has a version modified
> to accept d | D as an alternative to e | E. This "extension" to ANSI
> specifications causes untold grief. Use the ANSI compliant GNU version
The values I got were:
Close, but no cigar.
I am running GCC 2.7.2
Also installed on the system is libc4 4.6.27-11, but I don't have the
I haven't been able to quite comprehend the remedy, but a
local "ANSI compliant GNU version" of the offending function is
included with the source code.