pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: pkgsrc
From: Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost>, Date: Thu, 27 Feb 2014
21:11:24 +0900 (JST)
> From: Jonathan Perkin <jperkin%joyent.com@localhost>, Date: Thu, 27 Feb 2014
> 11:55:43 +0000
>
>> * On 2014-02-27 at 11:07 GMT, Ryo ONODERA wrote:
>>
>>> From: "Jonathan Perkin" <jperkin%netbsd.org@localhost>, Date: Wed, 26 Feb
>>> 2014 10:40:46 +0000
>>>
>>> > Module Name: pkgsrc
>>> > Committed By: jperkin
>>> > Date: Wed Feb 26 10:40:46 UTC 2014
>>> >
>>> > Modified Files:
>>> > pkgsrc/devel/libtool-base: Makefile
>>> > pkgsrc/devel/libtool-fortran: Makefile
>>> > pkgsrc/mk/wrapper: scan
>>> >
>>> > Log Message:
>>> > Remove special handling of -v in the wrappers.
>>> >
>>> > This was originally introduced to work around some behaviour in the
>>> > libtool build, however these days it is actively harmful for a number of
>>> > packages, where removing additional arguments when -v is present on the
>>> > command line can break ABI detection (notably in CMake packages).
>>> >
>>> > Instead, filter out any references to BUILDLINK_DIR from the libtool
>>> > scripts, as that should do the same job.
>>> >
>>> > Retain the ability to run the 'scan' wrapper script, as it can be useful
>>> > in certain cases, and is required to support the scan-libtool script
>>> > anyway.
>>>
>>> With this change (especially mk/wrapper/scan), devel/libtool-base
>>> under NetBSD/amd64 6.99.32 have been broken.
>>> pkg/bin/libtool has
>>>
>>> postdeps="-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc"
>>>
>>> line in C++ part. And textproc/hunspell cannot create shared library
>>> because it cannot find libgcc.so (NetBSD has no libgcc.so).
>>
>> Hmm, I see a similar change in the generated libtool on my NetBSD
>> 6.1.3 VM, however I do not see the same failure as a result of it.
>>
>> The full diff is:
>>
>> @@ -10227,10 +10227,10 @@
>>
>> # Dependencies to place before and after the objects being linked to
>> # create a shared library.
>> -predep_objects=""
>> -postdep_objects=""
>> +predep_objects="/usr/lib/crti.o /usr/lib/crtbeginS.o"
>> +postdep_objects="/usr/lib/crtendS.o /usr/lib/crtn.o"
>> predeps=""
>> -postdeps=""
>> +postdeps="-lstdc++ -lm -lgcc -lc -lgcc"
>>
>> # The library search path used internally by the compiler when linking
>> # a shared library.
>>
>> Did something change in current to affect this? I don't have a
>> current system to test on, unfortunately.
>
> My NetBSD/amd64 6.1 test enviroment has same problem.
> Only static library is built, there is no error, it is warning like this.
>
> *** Warning: linker path does not have real file for library -lgcc.
> *** I have the capability to make that library automatically link in when
> *** you link to this library. But I can only do this if you have a
> *** shared version of the library, which you do not appear to have
> *** because I did check the linker path looking for a file starting
> *** with libgcc and none of the candidates passed a file format test
> *** using a regex pattern. Last file checked: /usr/lib/libgcc.a
> *** The inter-library dependencies that have been dropped here will be
> *** automatically added whenever a program is linked with this library
> *** or is declared to -dlopen it.
> *** Since this library must not contain undefined symbols,
> *** because either the platform does not support them or
> *** it was explicitly requested with -no-undefined,
> *** libtool will only create a static version of it.
>
> Please see the output of your ls /usr/pkg/lib/libhunspell* .
>
> Thank you.
I do not know the real solution, but the following patch works for me.
I have no idea about non-GCC compiler or original cmake problems.
Index: mk/wrapper/scan
===================================================================
RCS file: /cvsroot/pkgsrc/mk/wrapper/scan,v
retrieving revision 1.2
diff -u -r1.2 scan
--- mk/wrapper/scan 26 Feb 2014 10:40:46 -0000 1.2
+++ mk/wrapper/scan 27 Feb 2014 13:11:10 -0000
@@ -38,6 +38,7 @@
# Optional argument processing.
for arg do
case $arg in
+ -libtool) append_extra_args=no; break ;;
*) ;;
esac
done
Index: devel/libtool/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libtool/distinfo,v
retrieving revision 1.89
diff -u -r1.89 distinfo
--- devel/libtool/distinfo 27 Aug 2013 15:50:23 -0000 1.89
+++ devel/libtool/distinfo 27 Feb 2014 13:11:10 -0000
@@ -4,6 +4,6 @@
RMD160 (libtool-2.4.2.tar.gz) = b7153f3f1e1c50d8c04787cafccd4e19af62ec7d
Size (libtool-2.4.2.tar.gz) = 2632347 bytes
SHA1 (patch-aa) = 8fa167bebf27b7bc3008edd61408a0aede6bdf69
-SHA1 (patch-ab) = 621798a0b1ed5b63f90d5cdca9c0287795a3d27c
+SHA1 (patch-ab) = cc705c97f5b641d3e3b5f2fe9f20f0d4a72bff06
SHA1 (patch-ac) = 108989e3f1ee199fa8e8a9dc7331d360c586a800
SHA1 (patch-ad) = a9471bff3c9f7e87120f78c1461835e6cbc60931
Index: devel/libtool/patches/patch-ab
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libtool/patches/patch-ab,v
retrieving revision 1.77
diff -u -r1.77 patch-ab
--- devel/libtool/patches/patch-ab 27 Aug 2013 15:50:23 -0000 1.77
+++ devel/libtool/patches/patch-ab 27 Feb 2014 13:11:10 -0000
@@ -445,6 +445,15 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
+@@ -15010,7 +15115,7 @@ if { { eval echo "\"\$as_me\":${as_linen
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+- for p in `eval "$output_verbose_link_cmd"`; do
++ for p in `eval "$output_verbose_link_cmd -libtool"`; do
+ case ${prev}${p} in
+
+ -L* | -R* | -l*)
@@ -15236,9 +15341,15 @@ lt_prog_compiler_static_CXX=
lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
;;
--
Ryo ONODERA // ryo_on%yk.rim.or.jp@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Home |
Main Index |
Thread Index |
Old Index