Re: Support -library=stlport4 with Sun C++ compiler
On Thu, Aug 03, 2006 at 11:44:17PM +0900, Peter O'Gorman wrote: > > I just applied Ralf's patches, then saw this. It's okay with me as > is, do you insist on the variable name change? I can see the value, > but am tired of applying patches for this :) No, I don't insist. As long as it works. -- albert chin ([EMAIL PROTECTED])
Re: Support -library=stlport4 with Sun C++ compiler
On Aug 3, 2006, at 11:29 PM, Albert Chin wrote: On Thu, Aug 03, 2006 at 02:50:31PM +0200, Ralf Menzel wrote: Albert Chin <[EMAIL PROTECTED]> writes: Good catch. Updated patch attached. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. I found some problems with the patches: 1. In the patch for libtool-HEAD the 'for ... do' line is superflous. 2. _LT_AC_TAGVAR doesn't seem to work with libtool-HEAD. I used _LT_TAGVAR, which seems to work. 3. In libtool-HEAD the patch addresses the Sun C compiler for Linux and not for Solaris, while the patch for libtool-1-5 addresses the Solaris compiler and ignores the linux version. The following patches seem to work for me: Good catch. I should have tested the new patches! Updated patches attached. I just applied Ralf's patches, then saw this. It's okay with me as is, do you insist on the variable name change? I can see the value, but am tired of applying patches for this :) Peter
Re: Support -library=stlport4 with Sun C++ compiler
On Thu, Aug 03, 2006 at 02:50:31PM +0200, Ralf Menzel wrote: > Albert Chin <[EMAIL PROTECTED]> writes: > > Good catch. Updated patch attached. > > > > 2006-08-01 Albert Chin <[EMAIL PROTECTED]> > > > > * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: > > Don't set $postdeps to "-lCstd -lCrun" if > > "-library=stlport4" set in CXXFLAGS as stlport4 C++ > > library incompatible with Cstd C++ library. Use > > '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. > > > > 2006-08-01 Albert Chin <[EMAIL PROTECTED]> > > > > * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: > > Don't set $postdeps to "-lCstd -lCrun" if > > "-library=stlport4" set in CXXFLAGS as stlport4 C++ > > library incompatible with Cstd C++ library. Use > > '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. > > I found some problems with the patches: > > 1. In the patch for libtool-HEAD the 'for ... do' line is superflous. > > 2. _LT_AC_TAGVAR doesn't seem to work with libtool-HEAD. I used >_LT_TAGVAR, which seems to work. > > 3. In libtool-HEAD the patch addresses the Sun C compiler for Linux >and not for Solaris, while the patch for libtool-1-5 addresses the >Solaris compiler and ignores the linux version. > > The following patches seem to work for me: Good catch. I should have tested the new patches! Updated patches attached. 2006-08-03 Albert Chin <[EMAIL PROTECTED]> * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ linux, solaris ]: Remove unterminated for loop from last patch; change variable name from $solaris_use_stlport4 to $suncpp_use_stlport4 as Sun C++ on GNU/Linux might need this feature as well; add -library=stlport4 to solaris section as well. 2006-08-03 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ linux, solaris ]: Change variable name from $solaris_use_stlport4 to $suncpp_use_stlport4 as Sun C++ on GNU/Linux might need this feature as well; add -library=stlport4 to linux section as well. -- albert chin ([EMAIL PROTECTED]) Index: libtool.m4 === RCS file: /cvsroot/libtool/libtool/Attic/libtool.m4,v retrieving revision 1.314.2.161 diff -u -p -r1.314.2.161 libtool.m4 --- libtool.m4 2 Aug 2006 13:35:37 - 1.314.2.161 +++ libtool.m4 3 Aug 2006 13:45:30 - @@ -3913,7 +3920,23 @@ linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 -_LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun' + +# The more standards-conforming stlport4 library is +# incompatible with the Cstd library. Avoid specifying +# it if it's in CXXFLAGS. Ignore libCrun as +# -library=stlport4 depends on it. +case " $CXX $CXXFLAGS " in +*" -library=stlport4 "*) + suncpp_use_stlport4=yes + ;; +esac + +# Adding this requires a known-good setup of shared libraries for +# Sun compiler versions before 5.6, else PIC objects from an old +# archive will be linked into the output, leading to subtle bugs. +if test "$suncpp_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +fi ;; esac ;; @@ -3927,14 +3950,14 @@ solaris*) # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) - solaris_use_stlport4=yes + suncpp_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. -if test "$solaris_use_stlport4" != yes; then +if test "$suncpp_use_stlport4" != yes; then _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; Index: libltdl/m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v retrieving revision 1.77 diff -u -p -r1.77 libtool.m4 --- libltdl/m4/libtool.m4 2 Aug 2006 13:35:30 - 1.77 +++ libltdl/m4/libtool.m4 3 Aug 2006 13:45:41 - @@ -6343,15 +6343,14 @@ linux*) # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. -for cc_flag in $CXXFLAGS; do case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) - solaris_use_stlport4=yes + suncpp_use_stlport4=yes ;; esac -if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +if test "$suncpp_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac @@ -6363,7 +6362,20 @@ solaris*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC obj
Re: Support -library=stlport4 with Sun C++ compiler
On Aug 3, 2006, at 9:50 PM, Ralf Menzel wrote: Hi, Albert Chin <[EMAIL PROTECTED]> writes: Good catch. Updated patch attached. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. I found some problems with the patches: 1. In the patch for libtool-HEAD the 'for ... do' line is superflous. 2. _LT_AC_TAGVAR doesn't seem to work with libtool-HEAD. I used _LT_TAGVAR, which seems to work. 3. In libtool-HEAD the patch addresses the Sun C compiler for Linux and not for Solaris, while the patch for libtool-1-5 addresses the Solaris compiler and ignores the linux version. The following patches seem to work for me: Inadequate review. Thanks for pointing it out. Sorry, Peter
Re: Support -library=stlport4 with Sun C++ compiler
Hi, Albert Chin <[EMAIL PROTECTED]> writes: > Good catch. Updated patch attached. > > 2006-08-01 Albert Chin <[EMAIL PROTECTED]> > > * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: > Don't set $postdeps to "-lCstd -lCrun" if > "-library=stlport4" set in CXXFLAGS as stlport4 C++ > library incompatible with Cstd C++ library. Use > '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. > > 2006-08-01 Albert Chin <[EMAIL PROTECTED]> > > * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: > Don't set $postdeps to "-lCstd -lCrun" if > "-library=stlport4" set in CXXFLAGS as stlport4 C++ > library incompatible with Cstd C++ library. Use > '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. I found some problems with the patches: 1. In the patch for libtool-HEAD the 'for ... do' line is superflous. 2. _LT_AC_TAGVAR doesn't seem to work with libtool-HEAD. I used _LT_TAGVAR, which seems to work. 3. In libtool-HEAD the patch addresses the Sun C compiler for Linux and not for Solaris, while the patch for libtool-1-5 addresses the Solaris compiler and ignores the linux version. The following patches seem to work for me: libtool-1-5-patch Description: Patch for libtool-1-5 libtool-HEAD-patch Description: Patch for libtool-HEAD
Re: Support -library=stlport4 with Sun C++ compiler
On Aug 2, 2006, at 2:00 AM, Albert Chin wrote: 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. Applied. Thanks, Peter
Re: Support -library=stlport4 with Sun C++ compiler
On Tue, Aug 01, 2006 at 02:12:31PM +0900, Peter O'Gorman wrote: > > On Aug 1, 2006, at 1:38 PM, Albert Chin wrote: > > >Sun C++ supports two C++ libraries, -library=Cstd (default), and the > >newer -library=stlport4. They are incompatible. Therefore, libtool's > >use of -lCstd (equivalent to -library=Cstd) should not be assigned to > >$postdeps if -library=stlport4 is in CXXFLAGS. Patch attached. > > > >Patch against branch-1-5 and branch-2.0 attached. > > This makes sense, but branch-2-0 is dead :-) > > Before I apply it though, do we also want to check CXX for - > library=stlport4 ? Someone could do CXX='CC -library=stlport4' and > expect libtool not to add CStd etc. Can't we do > > case" $CXX $CXXFLAGS " in >*" -library=stlport4 "*) solaris_use_stlport4=yes ;; > esac > > To save the loop too? Good catch. Updated patch attached. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-08-01 Albert Chin <[EMAIL PROTECTED]> * libltdl/m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. -- albert chin ([EMAIL PROTECTED]) Index: libtool.m4 === RCS file: /cvsroot/libtool/libtool/Attic/libtool.m4,v retrieving revision 1.314.2.160 diff -u -p -r1.314.2.160 libtool.m4 --- libtool.m4 28 Jul 2006 16:57:36 - 1.314.2.160 +++ libtool.m4 1 Aug 2006 16:57:51 - @@ -3921,10 +3928,22 @@ linux*) solaris*) case $cc_basename in CC*) +# The more standards-conforming stlport4 library is +# incompatible with the Cstd library. Avoid specifying +# it if it's in CXXFLAGS. Ignore libCrun as +# -library=stlport4 depends on it. +case " $CXX $CXXFLAGS " in +*" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; +esac + # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. -_LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun' +if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +fi ;; esac ;; Index: libltdl/m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v retrieving revision 1.76 diff -u -p -r1.76 libtool.m4 --- libltdl/m4/libtool.m4 28 Jul 2006 17:01:05 - 1.76 +++ libltdl/m4/libtool.m4 1 Aug 2006 16:58:11 - @@ -6338,7 +6338,21 @@ linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 -_LT_TAGVAR(postdeps,$1)='-lCstd -lCrun' + +# The more standards-conforming stlport4 library is +# incompatible with the Cstd library. Avoid specifying +# it if it's in CXXFLAGS. Ignore libCrun as +# -library=stlport4 depends on it. +for cc_flag in $CXXFLAGS; do +case " $CXX $CXXFLAGS " in +*" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; +esac + +if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +fi ;; esac ;;
Re: Support -library=stlport4 with Sun C++ compiler
On Aug 1, 2006, at 1:38 PM, Albert Chin wrote: Sun C++ supports two C++ libraries, -library=Cstd (default), and the newer -library=stlport4. They are incompatible. Therefore, libtool's use of -lCstd (equivalent to -library=Cstd) should not be assigned to $postdeps if -library=stlport4 is in CXXFLAGS. Patch attached. Patch against branch-1-5 and branch-2.0 attached. This makes sense, but branch-2-0 is dead :-) Before I apply it though, do we also want to check CXX for - library=stlport4 ? Someone could do CXX='CC -library=stlport4' and expect libtool not to add CStd etc. Can't we do case" $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac To save the loop too? Peter
Support -library=stlport4 with Sun C++ compiler
Sun C++ supports two C++ libraries, -library=Cstd (default), and the newer -library=stlport4. They are incompatible. Therefore, libtool's use of -lCstd (equivalent to -library=Cstd) should not be assigned to $postdeps if -library=stlport4 is in CXXFLAGS. Patch attached. Patch against branch-1-5 and branch-2.0 attached. 2006-07-31 Albert Chin <[EMAIL PROTECTED]> * libtool.m4 (AC_LIBTOOL_POSTDEP_PREDEP) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. 2006-07-31 Albert Chin <[EMAIL PROTECTED]> * m4/libtool.m4 (_LT_SYS_HIDDEN_LIBDEPS) [ solaris ]: Don't set $postdeps to "-lCstd -lCrun" if "-library=stlport4" set in CXXFLAGS as stlport4 C++ library incompatible with Cstd C++ library. Use '-library=Cstd -library=Crun' instead of '-lCstd -lCrun'. -- albert chin ([EMAIL PROTECTED]) Index: libtool.m4 === RCS file: /cvsroot/libtool/libtool/Attic/libtool.m4,v retrieving revision 1.314.2.160 diff -u -p -r1.314.2.160 libtool.m4 --- libtool.m4 28 Jul 2006 16:57:36 - 1.314.2.160 +++ libtool.m4 1 Aug 2006 04:28:45 - @@ -3921,10 +3928,25 @@ linux*) solaris*) case $cc_basename in CC*) +# The more standards-conforming stlport4 library is +# incompatible with the Cstd library. Avoid specifying +# it if it's in CXXFLAGS. Ignore libCrun as +# -library=stlport4 depends on it. +for cc_flag in $CXXFLAGS; do + case $cc_flag in + *-library=stlport4*) + solaris_use_stlport4=yes + break + ;; + esac +done + # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. -_LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun' +if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +fi ;; esac ;; Index: m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/m4/Attic/libtool.m4,v retrieving revision 1.125.2.76 diff -u -p -r1.125.2.76 libtool.m4 --- m4/libtool.m4 24 Aug 2005 15:05:20 - 1.125.2.76 +++ m4/libtool.m4 1 Aug 2006 04:28:53 - @@ -5919,7 +5919,22 @@ m4_if([$1], [CXX], solaris*) case $cc_basename in CC*) -_LT_TAGVAR(postdeps,$1)='-lCstd -lCrun' +# The more standards-conforming stlport4 library is +# incompatible with the Cstd library. Avoid specifying +# it if it's in CXXFLAGS. Ignore libCrun as +# -library=stlport4 depends on it. +for cc_flag in $CXXFLAGS; do + case $cc_flag in + *-library=stlport4*) + solaris_use_stlport4=yes + break + ;; + esac +done + +if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' +fi ;; esac esac