[pcre-dev] [Bug 874] New: PCRE 7.9 does not compile on AIX

Página Principal
Apagar esta mensagem
Autor: Oliver Lehmann
Data:  
Para: pcre-dev
Assunto: [pcre-dev] [Bug 874] New: PCRE 7.9 does not compile on AIX
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=874
           Summary: PCRE 7.9 does not compile on AIX
           Product: PCRE
           Version: N/A
          Platform: Other
        OS/Version: AIX
            Status: NEW
          Severity: bug
          Priority: high
         Component: Code
        AssignedTo: ph10@???
        ReportedBy: oliver@???
                CC: pcre-dev@???



Hi,

I'm running pkgsrc on AIX, and PCRE is not compileable with gcc 3.4. I get the
following linking error:

: gmake
gmake all-am
gmake[1]: Entering directory `/opt/pkgsrc/devel/pcre/work/pcre-7.9'
/opt/pkg/bin/bash ./libtool --tag=CXX --mode=link c++ -O
-I/opt/pkg/gcc34/include
-I/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/include -I/usr/include
-L/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6
-Wl,-R/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6 -L/opt/pkg/gcc34/lib
-Wl,-R/opt/pkg/gcc34/lib -L/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/
-Wl,-R/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/ -L/usr/lib
-Wl,-R/usr/lib -Wl,-R/opt/pkg/lib -o pcrecpp_unittest pcrecpp_unittest.o
libpcrecpp.la
c++ -O -I/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/include
-I/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/include
-Wl,-R/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6
-Wl,-R/opt/pkg/gcc34/lib
-Wl,-R/opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/ -Wl,-R/opt/pkg/lib -o
.libs/pcrecpp_unittest pcrecpp_unittest.o
-L/opt/pkgsrc/devel/pcre/work/pcre-7.9/.libs
-L/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6
-L/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/lib
-L/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/
-L./.libs -lpcrecpp -lpcre -L/opt/pkgsrc/devel/pcre/work/.buildlink/lib
-lstdc++
-L/opt/pkgsrc/lang/gcc34/work/obj/rs6000-ibm-aix5.1.0.0/libstdc++-v3/src
-L/opt/pkgsrc/lang/gcc34/work/obj/rs6000-ibm-aix5.1.0.0/libstdc++-v3/src/.libs
-L/opt/pkgsrc/lang/gcc34/work/obj/gcc
-Wl,-blibpath:/opt/pkg/lib:/opt/pkgsrc/devel/pcre/work/.buildlink/gcc34/lib:/opt/pkgsrc/devel/libtool-base/work/.buildlink/lib:/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.3.2:/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.1.0.0/3.3.2/../../..:/usr/lib:/lib
ld: 0706-027 The -R /opt/pkg/gcc34/lib flag is ignored.
ld: 0706-027 The -R /opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6 flag is
ignored.
ld: 0706-027 The -R /opt/pkg/gcc34/lib flag is ignored.
ld: 0706-027 The -R /opt/pkg/gcc34/lib/gcc/rs6000-ibm-aix5.1.0.0/3.4.6/ flag is
ignored.
ld: 0706-027 The -R /opt/pkg/lib flag is ignored.
ld: 0711-317 ERROR: Undefined symbol: .__assert(char const*, char const*, int)
ld: 0711-317 ERROR: Undefined symbol: .isdigit(int)
ld: 0711-317 ERROR: Undefined symbol: .isspace(int)
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
gmake[1]: *** [pcrecpp_unittest] Error 1
gmake[1]: Leaving directory `/opt/pkgsrc/devel/pcre/work/pcre-7.9'
gmake: *** [all] Error 2


For me it looks like the symbols in libpcrecpp and libpcre are not resolvable.
I tried to find out from which of both libraries the error comes from:

:gcc -o .libs/pcrecpp_unittest pcrecpp_unittest.o -lc -L./.libs -lpcrecpp 2>&1
|grep -E '(is|assert)'
ld: 0706-027 The -R /opt/pkg/gcc34/lib flag is ignored.
ld: 0711-317 ERROR: Undefined symbol: .__assert(char const*, char const*, int)
ld: 0711-317 ERROR: Undefined symbol: .isdigit(int)
ld: 0711-317 ERROR: Undefined symbol: .isspace(int)
: gcc -o .libs/pcrecpp_unittest pcrecpp_unittest.o -lc -L./.libs -lpcre 2>&1
|grep -E '(is|assert)'
ld: 0706-027 The -R /opt/pkg/gcc34/lib flag is ignored.
ld: 0711-317 ERROR: Undefined symbol: .__assert(char const*, char const*, int)

isdigit() ischar() in a C++ program itself works without a problem:

: cat b.c ; c++ b.c && ./a.out ; echo $?
#include <iostream>
#include <ctype.h>
using namespace std;
int main()
{
        int a=1;
        if (isspace(a))
                cout << "foo";
}


ld: 0706-027 The -R /opt/pkg/gcc34/lib flag is ignored.
0
:

So - I have no idea why it cannot be linked with. For me it looks like an error


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email