Closed lgbaldoni closed 5 years ago
I too am stuck when adding '-lz'. Running OpenSuSE Tumbleweed. Have you had any progress since posting this?
None whatsoever. The project looks abandoned.
libbfd which is used by this project is pretty volatile. it's part of binutils and afaict there's no stable ABI (so imo it's been a pretty bad choice to use it for this project). anyway, the issues you're experiencing may be related to that your libbfd is a static lib (libbfd.a), not a dynamic lib, so dependencies aren't pulled in automatically. most of the symbols i see missing seem to be from libiberty, which is another GNU library (used by gcc and binutils) not really meant to be used by external projects. maybe adding -liberty -lz -ldl -lc
to the command line could fix it, but i would look into getting a dynamic build of libbfd.
And that, among other things, did the trick, TYVM.
And that, among other things, did the trick, TYVM.
what exactly ?
I was creating a rpm package. Things to link to system libraries when possible, fix installation paths, compilation flags and a few other minor details.
Hi Luigino and rofl0r, As noted by rofl0r, the symbols that trigger an error, such as "objalloc_free_block" are not called from wcc. The linking problem would come from a problem when building libbfd/libopcode. I am glad to hear you managed to solve the matter by linking against a version of libbfd that is a shared library instead of a static library. I was about to suggest you built against this version: ftp://sourceware.org/pub/binutils/snapshots/binutils-2.31.90.tar.xz using the following steps: wget -c ftp://sourceware.org/pub/binutils/snapshots/binutils-2.31.90.tar.xz tar -xvJf binutils-2.31.90.tar.xz mkdir build -p cd build ../binutils-2.31.90/configure --with-sysroot=/ --enable-shared --enable-targets=all --build=x86_64-linux-gnu --host=x86_64-linux-gnu --enable-plugins --prefix=/usr --enable-ld=default --enable-gold --enable-multilib build_alias=x86_64-linux-gnu host_alias=x86_64-linux-gnu make -j8 make install
I'm glad you could solve it by yourself \o/
Linking problem solved. For future reference, the following steps to build binutils, libbfd and libopcode are known to work :
wget -c ftp://sourceware.org/pub/binutils/snapshots/binutils-2.31.90.tar.xz tar -xvJf binutils-2.31.90.tar.xz rm -rf ./build/ mkdir build -p cd build ../binutils-2.31.90/configure --with-sysroot=/ --enable-shared --enable-targets=all --build=x86_64-linux-gnu --host=x86_64-linux-gnu --enable-plugins --prefix=/usr --enable-ld=default --enable-gold --enable-multilib build_alias=x86_64-linux-gnu host_alias=x86_64-linux-gnu make -j8 make install
Using openSUSE Tumbleweed, this happens:
Adding a -lz produces this:
And then I'm stuck.
Any hints?