stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Black <>
Subject Re: xlC link errors caused by commas in BUILDDIR
Date Wed, 07 Mar 2007 20:36:50 GMT
Greetings Martin.

For what it's worth, this isn't a problem restricted to XLC++.  My
reading of the .config files indicates that the only compilers that
won't be affected are the osf_cxx, Sunpro, reliant_cds, como and eccp
compilers.  The first two compilers don't use a comma in the rpath
option, and the remainder don't have an rpath switch defined.

It might be possible to alter the makefiles to mangle the path, escaping
the comma, but I suspect that could cause other problems.  I would
hazard a guess that spaces in the value of $BUILDDIR might also cause a
number of problems.

--Andrew Black

Martin Sebor wrote:
> I've run into a linker error when building with IBM XLC++
> in a directory whose name contains a comma (see below).
> The problem is that we're passing the absolute pathname
> of $BUILDDIR/lib to the linker via the -Wl compiler driver
> option. This option uses the comma to separate individual
> arguments from one another. I don't know if it's worth
> trying to deal with this or not but I thought I'd mention
> it in case someone else runs into the same problem or in
> case Andrew has an idea for how to fix it.
> Martin
> $ nice gmake BUILDMODE=shared,debug 
> BUILDDIR=/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug
> GNUmakefile:289: "CONFIG not specified, using vacpp.config"
> expr: 0402-050 Syntax error.
> creating BUILDDIR=/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug
> generating /build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/ 
> from /amd/devco/sebor/stdcxx/etc/config/vacpp.config
> expr: 0402-050 Syntax error.
> gmake[1]: Entering directory 
> `/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug'
> gmake[2]: Entering directory 
> `/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/include'
> gmake config
> gmake[3]: Entering directory 
> `/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/include'
> configuring for xlCcore- on aix-5.3
> checking if the compiler is sane                   ok (invoked with 
> xlCcore)
> checking if the linker is sane                     ok (invoked with 
> xlCcore)
> ...
> gmake[2]: Entering directory 
> `/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/examples'
> xlCcore -c -I/amd/devco/sebor/stdcxx/include/ansi -D_RWSTDDEBUG 
> -D_RWSTD_USE_CONFIG -I/amd/devco/sebor/stdcxx/include 
> -I/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/include 
> -I/amd/devco/sebor/stdcxx/examples/include  -g 
> -qtemplateregistry=accumulate.ti 
> /amd/devco/sebor/stdcxx/examples/manual/accumulate.cpp
> xlCcore accumulate.o -o accumulate 
> -I/amd/devco/sebor/stdcxx/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG 
> -liconv -brtl -L/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/lib -lstd 
> -Wl,-bsvr4,-R/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/lib  -lm 
> -qtemplateregistry=accumulate.ti
> ld: 0706-005 Cannot find or open file: debug/lib
>         ld:open(): A file or directory in the path name does not exist.
> gmake[2]: *** [accumulate] Error 255
> gmake[2]: Leaving directory 
> `/build/sebor/tmp/stdcxx-vacpp-7.0-shared,debug/examples'
> gmake[1]: [examples] Error 2 (ignored)

View raw message