stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <>
Subject Re: xlC link errors caused by commas in BUILDDIR
Date Thu, 08 Mar 2007 17:48:50 GMT
Andrew Black wrote:
> 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.

Spaces in file names are known not to work on UNIX in general
because they are reserved by all utilities to separate command
line arguments and options. Commas are not reserved by most
utilities and they are handled fine in most cases so when they
don't work it's likely to be surprising to users, especially
if they don't cause any problems in archive builds (they don't
appear to).


> --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