The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=13332 
====================================================================== 
Reported By:                Daniel R. Gomez
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   13332
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2012-06-20 15:48 EDT
Last Modified:              2012-06-20 15:48 EDT
====================================================================== 
Summary:                    Can't link a shared library with cc on HP-UX
Description: 
Bootstrapping 2.8.8 on HP-UX 11.00 with the vendor compiler fails with

[...]
Linking C shared module libcmsysTestDynload.sl
cd /tmp/cmake-2.8.8-test/_build-cc/Source/kwsys &&
/tmp/cmake-2.8.8-test/_build-cc/Bootstrap.cmk/cmake -E cmake_link_script
CMakeFiles/cmsysTestDynload.dir/link.txt --verbose=1
/opt/ansic/bin/cc  +Z -Ae +DA2.0 +ESlit +w1 -z -Wp,-H262144 +O2   
-Wl,-E,+nodefaultrpath -b -L/usr/lib -Wl,+hlibcmsysTestDynload.sl -o
libcmsysTestDynload.sl CMakeFiles/cmsysTestDynload.dir/testDynload.c.o
-Wl,+b/usr/lib 
cc: warning 488: "cc +help" invokes On-Line C reference manual.
cc: warning 422: Unknown option "b" ignored.
/usr/ccs/bin/ld: Unsatisfied symbols:
   main (Not referenced yet! Probably due to -u option)
gmake[2]: *** [Source/kwsys/libcmsysTestDynload.sl] Error 1
gmake[2]: Leaving directory `/tmp/cmake-2.8.8-test/_build-cc'
gmake[1]: *** [Source/kwsys/CMakeFiles/cmsysTestDynload.dir/all] Error 2
gmake[1]: Leaving directory `/tmp/cmake-2.8.8-test/_build-cc'
gmake: *** [all] Error 2


For one, that -b needs to be a -Wl,-b. If I do the compiler invocation that way,
I get

host:/tmp/cmake-2.8.8-test/_build-cc/Source/kwsys$ /opt/ansic/bin/
cc +Z -Ae +DA2.0 +ESlit +w1 -z -Wp,-H262144 +O2 -Wl,-E,+nodefaultrpath -Wl,-b -L
/usr/lib -Wl,+hlibcmsysTestDynload.sl -o libcmsysTestDynload.sl CMakeFiles/cmsys
TestDynload.dir/testDynload.c.o -Wl,+b/usr/lib
/usr/ccs/bin/ld: CODE_ONE_SYM fixup to non-code subspace in file
/opt/langtools/lib/crt0.o - shared library must be position independent. Use +z
or +Z to recompile.


Adding -v to that gives me

cc: NLSPATH is /opt/ansic/lib/nls/msg/%L/%N.cat:/opt/ansic/lib/nls/msg/C/%N.cat:
cc: CCOPTS is not set.
cc: INCLUDIR is INCLUDIR=/usr/include
cc: LPATH is /usr/lib:/opt/langtools/lib:
/usr/ccs/bin/ld /opt/langtools/lib/crt0.o -u main -z -E +nodefaultrpath -b
-L/usr/lib +hlibcmsysTestDynload.sl -o libcmsysTestDynload.sl
CMakeFiles/cmsysTestDynload.dir/testDynload.c.o +b/usr/lib -lc 
cc: Entering Link editor.
/usr/ccs/bin/ld: CODE_ONE_SYM fixup to non-code subspace in file
/opt/langtools/lib/crt0.o - shared library must be position independent. Use +z
or +Z to recompile.


I don't know how crt0.o is getting in there, but if I invoke ld directly without
that, the link works. There is probably an option that can be given to cc(1) so
that it doesn't pass crt0.o to the linker, but I'm not seeing anything along
those lines in the man page...
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2012-06-20 15:48 Daniel R. GomezNew Issue                                    
======================================================================

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to