pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: libexecinfo fails to build using clang on Darwin



On Mon, May 26, 2014 at 12:09 AM, Xiyue Deng <manphiz%gmail.com@localhost> 
wrote:
> On Sun, May 25, 2014 at 11:44 PM, Xiyue Deng <manphiz%gmail.com@localhost> 
> wrote:
>> Hi,
>>
>> When trying to build cmake, libexecinfo fails with the following errors:
>>
>> ----------8<----------
>> $ bmake install
>> => Bootstrap dependency digest>=20010302: found digest-20121220
>> ===> Installing dependencies for libexecinfo-1.1
>> => Tool dependency nbpatch-[0-9]*: found nbpatch-20100124
>> ===> Creating toolchain wrappers for libexecinfo-1.1
>> ===> Configuring for libexecinfo-1.1
>> ===> Building for libexecinfo-1.1
>> --- execinfo.o ---
>> --- execinfo.so ---
>> --- execinfo.o ---
>> clang -pipe -O2   -c execinfo.c
>> --- execinfo.so ---
>> clang -pipe -O2   -c -fPIC -DPIC execinfo.c -o execinfo.so
>> --- stacktraverse.o ---
>> clang -pipe -O2   -c stacktraverse.c
>> --- stacktraverse.so ---
>> clang -pipe -O2   -c -fPIC -DPIC stacktraverse.c -o stacktraverse.so
>> --- libexecinfo_pic.a ---
>> building shared object execinfo library
>> ar -c -q libexecinfo_pic.a `NM=nm lorder stacktraverse.so execinfo.so
>> | tsort -q`
>> --- libexecinfo.a ---
>> building standard execinfo library
>> ar -c -q libexecinfo.a `NM=nm lorder stacktraverse.o execinfo.o | tsort -q`
>> --- libexecinfo_pic.a ---
>> ranlib libexecinfo_pic.a
>> --- libexecinfo.so.1.0 ---
>> building shared execinfo library (version 1.0)
>> clang -shared  -o libexecinfo.so.1.0    --whole-archive
>> libexecinfo_pic.a --no-whole-archive -lm
>> --- libexecinfo.a ---
>> ranlib libexecinfo.a
>> --- libexecinfo.so.1.0 ---
>> clang: error: unsupported option '--whole-archive'
>> clang: error: unsupported option '--no-whole-archive'
>> *** [libexecinfo.so.1.0] Error code 1
>>
>> bmake: stopped in /Users/dxy/pkgsrc/devel/libexecinfo/work/libexecinfo-1.1
>> 1 error
>>
>> bmake: stopped in /Users/dxy/pkgsrc/devel/libexecinfo/work/libexecinfo-1.1
>> *** Error code 2
>>
>> Stop.
>> bmake: stopped in /Users/dxy/pkgsrc/devel/libexecinfo
>> *** Error code 1
>>
>> Stop.
>> bmake: stopped in /Users/dxy/pkgsrc/devel/libexecinfo
>> ----------8<----------
>>
>> I tried to modify work/.wrapper/tmp/cache and removed args in
>> "--whole-archive" and "--no-whole-archive" and it seems to pass, but
>> this is not fixing the issue and I'm not sure whether it is still
>> producing the correct .a.
>>
>> Any comment is appreciated.
>
> Forgot to mention, I was using xcode 5.1 on Mac OS X 10.9 Mavericks.
>
> $ clang -v
> Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
> Target: x86_64-apple-darwin13.2.0
> Thread model: posix

Turns out the issue is that mk/platform/Darwin.mk is using the wrong
flags for linker to extract all symbols from static archives. It
assumes ld is GNU ld which is not the case. The correct flag is
"-Wl,-force_unload". Will file a separate PR with patch.


Home | Main Index | Thread Index | Old Index