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

Martin


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