Elaborating more on the IIseterr/iiseterr naming conflict by doing some research on the symbol tables inside archive library libingres.a
(a refresher on the issue:
http://perlingresprogramming.blogspot.com/2008/10/do-not-trust-manual.html)
The following entry is from the library implementation that will compile with 'iiseterr'
libingres.a:iiuflibq.o:00000cf0 T iiseterr_
libingres.a:iiuflbqL.o:00000cf0 T iiseterr
libingres.a:iiaclibq.o:000008a0 T IIpseterr
libingres.a:iiseterr.o:00000000 T IIseterr
we see that there are four implementations of iiseterr each one in a different library, thus any of the four can be used in the source code and will compile fine
In the offending implementations where the undefined reference error occurred there is no 'iiseterr' entry (as in the manual) for any library contained in libingres.a; however there is an IIseterr entry and that is why when capitalizing both i's the symbol can be found and hence compile.
(it would compile with 'iiseterr_' as well)
libingres.a:iiseterr.o:00000000 T IIseterr
libingres.a:iiuflibq.o:00000a5f T iiseterr_
(a refresher on the issue:
http://perlingresprogramming.blogspot.com/2008/10/do-not-trust-manual.html)
The following entry is from the library implementation that will compile with 'iiseterr'
libingres.a:iiuflibq.o:00000cf0 T iiseterr_
libingres.a:iiuflbqL.o:00000cf0 T iiseterr
libingres.a:iiaclibq.o:000008a0 T IIpseterr
libingres.a:iiseterr.o:00000000 T IIseterr
we see that there are four implementations of iiseterr each one in a different library, thus any of the four can be used in the source code and will compile fine
In the offending implementations where the undefined reference error occurred there is no 'iiseterr' entry (as in the manual) for any library contained in libingres.a; however there is an IIseterr entry and that is why when capitalizing both i's the symbol can be found and hence compile.
(it would compile with 'iiseterr_' as well)
libingres.a:iiseterr.o:00000000 T IIseterr
libingres.a:iiuflibq.o:00000a5f T iiseterr_
Comments