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/makefile.in 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)


Reply via email to