Rack: Ubuntu: linking fails - undefined reference to symbol

Created on 4 Apr 2018  路  23Comments  路  Source: VCVRack/Rack

Source revision: d2d4ee99d4a8c28f8d9fe83b19aca6f133f5c43d

On Ubuntu 16.04, make fails in the linking stage.

g++ [...] build/dep/osdialog/osdialog_gtk2.c.o -rdynamic -lpthread -lGL -ldl -lX11 -lasound -ljack -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -Ldep/lib -Wl,-Bstatic -lglfw3 -lGLEW -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto -Wl,-Bdynamic
/usr/bin/ld: dep/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libX11.so: error adding symbols: DSO missing from command line

Maybe related to link order, see this post.

Most helpful comment

Fixed in 35f00be

All 23 comments

On OSX 10.13.3, I can build 88be6a4ee4fb7883fa94677816c840ceddb089d6 but not d2d4ee99d4a8c28f8d9fe83b19aca6f133f5c43d. Final link of Rack fails with

clang: error: no such file or directory: 'dep/lib/libglfw3.a'
make: *** [Rack] Error 1

@Dewb You might want to do a full rebuild of dep/ since I'm building static libraries instead of shared.

Yep, ran a make clean in dep, resync'd submodules, still fails. The glfw build produces shared libraries. A completely fresh clone in a new folder succeeds, so it's definitely some kind of local build tree state problem. Sorry for the noise, I'm trying to pin down the cause.

This fixed it, if anyone else runs into the same problem:

$ cd dep/glfw
$ rm Makefile 
$ rm -rf CMakeFiles
$ rm -rf CMakeScripts
$ rm -rf CMakeCache.txt 
$ cd ../..
$ make

Or perhaps cd dep/glfw git clean -fdx

Ah, good idea. Maybe adding a git submodule foreach git clean -fdx to the clean: block in dep/Makefile would automate these issues away?

@ndrspcfd in https://github.com/VCVRack/Rack/issues/887#issuecomment-381001588 has a proposal patch to fix this issue.

The solution posted in https://github.com/VCVRack/Rack/issues/887#issuecomment-381001588 did work for me on Ubuntu 16.04, but it relied on glfw3 and glew packages to be installed. Setting PKG_CONFIG_PATH explicitly to dep/lib/pkgconfig would work, but here is a simplified solution that does not rely on pkgconfig and works also:

The following does work:

diff --git a/Makefile b/Makefile
index 272073a..04138cd 100644
--- a/Makefile
+++ b/Makefile
@@ -42,11 +42,13 @@ ifeq ($(ARCH), lin)
        SOURCES += dep/osdialog/osdialog_gtk2.c
        CFLAGS += $(shell pkg-config --cflags gtk+-2.0)
        LDFLAGS += -rdynamic \
-               -lpthread -lGL -ldl -lX11 -lasound -ljack \
+               -lpthread -lGL -ldl \
                $(shell pkg-config --libs gtk+-2.0) \
                -Ldep/lib \
-               -Wl,-Bstatic -lglfw3 -lGLEW -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto \
-               -Wl,-Bdynamic
+               -Wl,-Bstatic \
+               -lglfw3 -lrt -ldl -lGLEW -lGLU -ldrm -lXdamage -lXfixes -lX11-xcb -lxcb-glx -lxcb-dri2 -lXxf86vm -lXext -lX11 -lxcb -lXau -lXdmcp \
+               -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto \
+               -Wl,-Bdynamic -lasound -ljack -lm
        TARGET := Rack
 endif

One more note on the static build in general: if RTAUDIO_ALL_APIS is used for make dep, which enables, for example pulseaudio, -lpulse and -lpulse-simple must be added to the static linker section. My solution above does not account for this.

Oh yeah, that an interesting problem. I might have to add a Makefile flag for compiling with all audio APIs to the root Makefile as well.

@cschol Oh yes - probably should have mentioned I did export PKG_CONFIG_PATH=dep/lib/pkgconfig during the "error" part of my "trial and error"! I wrongly assumed this was already set somewhere in the build process.

Thanks for explicitly writing out and massaging the pkg-config output. I wonder, though if some form of using pkg-config might be the more robust approach, since glfw3 and glew should know what they need (though I admit I don't understand the need to remove -lGL and -lm - maybe this is just down to the static/dynamic build requirement being more intricate than pkg-config is designed for? I couldn't spot anything in man pkg-config that would allow excluding these in a less ugly way.)

Hi.. i'm getting this error when i try to compile on both Ubuntu 17.10 and Ubuntu 18.04:

sudo apt install git gcc make cmake tar unzip zip curl mesa-common-dev libglu1-mesa-dev libxrandr-dev libxi-dev libglfw3-dev libxinerama-dev libxcursor-dev libasound2-dev libjack-jackd2-dev libpulse-dev libgtk2.0-dev

cd ~/src
git clone https://github.com/VCVRack/Rack.git
cd ./Rack
git checkout v0.6
git submodule update --init --recursive

# Configure and build
make dep RTAUDIO_ALL_APIS=1
make

The make command fails with the following...

...
<snip previous output>
...
g++ -o Rack build/dep/nanovg/src/nanovg.c.o build/src/engine.cpp.o build/src/settings.cpp.o build/src/tags.cpp.o build/src/midi.cpp.o build/src/plugin.cpp.o build/src/bridge.cpp.o build/src/audio.cpp.o build/src/window.cpp.o build/src/main.cpp.o build/src/asset.cpp.o build/src/ui/MenuOverlay.cpp.o build/src/ui/RadioButton.cpp.o build/src/ui/MenuLabel.cpp.o build/src/ui/Scene.cpp.o build/src/ui/ProgressBar.cpp.o build/src/ui/Tooltip.cpp.o build/src/ui/layouts.cpp.o build/src/ui/Slider.cpp.o build/src/ui/WindowWidget.cpp.o build/src/ui/ChoiceButton.cpp.o build/src/ui/ui.cpp.o build/src/ui/PasswordField.cpp.o build/src/ui/List.cpp.o build/src/ui/Menu.cpp.o build/src/ui/MenuItem.cpp.o build/src/ui/ScrollWidget.cpp.o build/src/ui/TextField.cpp.o build/src/ui/Label.cpp.o build/src/ui/Button.cpp.o build/src/Core/QuadMIDIToCVInterface.cpp.o build/src/Core/Notes.cpp.o build/src/Core/MidiIO.cpp.o build/src/Core/AudioInterface.cpp.o build/src/Core/MIDICCToCVInterface.cpp.o build/src/Core/MIDIToCVInterface.cpp.o build/src/Core/Core.cpp.o build/src/Core/MIDITriggerToCVInterface.cpp.o build/src/Core/Blank.cpp.o build/src/app/SVGKnob.cpp.o build/src/app/ParamWidget.cpp.o build/src/app/RackScene.cpp.o build/src/app/LightWidget.cpp.o build/src/app/Knob.cpp.o build/src/app/ModuleBrowser.cpp.o build/src/app/ModuleLightWidget.cpp.o build/src/app/SVGButton.cpp.o build/src/app/PluginManagerWidget.cpp.o build/src/app/WireContainer.cpp.o build/src/app/WireWidget.cpp.o build/src/app/LedDisplay.cpp.o build/src/app/MultiLightWidget.cpp.o build/src/app/SVGSlider.cpp.o build/src/app/ModuleWidget.cpp.o build/src/app/AudioWidget.cpp.o build/src/app/Panel.cpp.o build/src/app/RackRail.cpp.o build/src/app/Toolbar.cpp.o build/src/app/RackWidget.cpp.o build/src/app/Port.cpp.o build/src/app/RackScrollWidget.cpp.o build/src/app/SVGPanel.cpp.o build/src/app/MomentarySwitch.cpp.o build/src/app/SVGPort.cpp.o build/src/app/CircularShadow.cpp.o build/src/app/SpriteKnob.cpp.o build/src/app/SVGScrew.cpp.o build/src/app/ToggleSwitch.cpp.o build/src/app/SVGSwitch.cpp.o build/src/app/app.cpp.o build/src/app/MidiWidget.cpp.o build/src/util/random.cpp.o build/src/util/request.cpp.o build/src/util/string.cpp.o build/src/util/system.cpp.o build/src/util/logger.cpp.o build/src/widgets/FramebufferWidget.cpp.o build/src/widgets/ZoomWidget.cpp.o build/src/widgets/QuantityWidget.cpp.o build/src/widgets/TransformWidget.cpp.o build/src/widgets/SVGWidget.cpp.o build/src/widgets/SpriteWidget.cpp.o build/src/widgets/Widget.cpp.o build/src/widgets/widgets.cpp.o build/src/dsp/minblep.cpp.o build/dep/osdialog/osdialog_gtk2.c.o -rdynamic -lpthread -lGL -ldl -lX11 -lasound -ljack -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -Ldep/lib -Wl,-Bstatic -lglfw3 -lGLEW -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto -Wl,-Bdynamic
/usr/bin/ld: dep/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libX11.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
compile.mk:52: recipe for target 'Rack' failed
make: *** [Rack] Error 1

@g4z did you try applying the patch from @cschol, above? That error is what it's designed to fix.

I started again from a fresh clone and followed the same steps to compile as i posted above, except this time i modified the Makefile according the cschol's patch after i changed to the v0.6 branch.

EDIT: i'm doing this on latest Ubuntu 18.04 (which is an RC release, if it's relevant)

The make command fails like this instead...

g++ -o Rack build/dep/nanovg/src/nanovg.c.o build/src/engine.cpp.o build/src/tags.cpp.o build/src/settings.cpp.o build/src/midi.cpp.o build/src/plugin.cpp.o build/src/bridge.cpp.o build/src/audio.cpp.o build/src/window.cpp.o build/src/main.cpp.o build/src/asset.cpp.o build/src/ui/MenuOverlay.cpp.o build/src/ui/RadioButton.cpp.o build/src/ui/MenuLabel.cpp.o build/src/ui/Scene.cpp.o build/src/ui/ProgressBar.cpp.o build/src/ui/Tooltip.cpp.o build/src/ui/layouts.cpp.o build/src/ui/Slider.cpp.o build/src/ui/WindowWidget.cpp.o build/src/ui/ChoiceButton.cpp.o build/src/ui/ui.cpp.o build/src/ui/PasswordField.cpp.o build/src/ui/List.cpp.o build/src/ui/Menu.cpp.o build/src/ui/MenuItem.cpp.o build/src/ui/ScrollWidget.cpp.o build/src/ui/TextField.cpp.o build/src/ui/Label.cpp.o build/src/ui/Button.cpp.o build/src/Core/QuadMIDIToCVInterface.cpp.o build/src/Core/Notes.cpp.o build/src/Core/MidiIO.cpp.o build/src/Core/AudioInterface.cpp.o build/src/Core/MIDIToCVInterface.cpp.o build/src/Core/MIDICCToCVInterface.cpp.o build/src/Core/Core.cpp.o build/src/Core/MIDITriggerToCVInterface.cpp.o build/src/Core/Blank.cpp.o build/src/widgets/FramebufferWidget.cpp.o build/src/widgets/ZoomWidget.cpp.o build/src/widgets/Widget.cpp.o build/src/widgets/QuantityWidget.cpp.o build/src/widgets/widgets.cpp.o build/src/widgets/SVGWidget.cpp.o build/src/widgets/SpriteWidget.cpp.o build/src/widgets/TransformWidget.cpp.o build/src/app/ParamWidget.cpp.o build/src/app/RackScene.cpp.o build/src/app/LightWidget.cpp.o build/src/app/Knob.cpp.o build/src/app/ModuleBrowser.cpp.o build/src/app/ModuleWidget.cpp.o build/src/app/SVGButton.cpp.o build/src/app/SVGScrew.cpp.o build/src/app/PluginManagerWidget.cpp.o build/src/app/WireContainer.cpp.o build/src/app/WireWidget.cpp.o build/src/app/LedDisplay.cpp.o build/src/app/MultiLightWidget.cpp.o build/src/app/SVGSlider.cpp.o build/src/app/RackRail.cpp.o build/src/app/AudioWidget.cpp.o build/src/app/Panel.cpp.o build/src/app/SVGKnob.cpp.o build/src/app/Toolbar.cpp.o build/src/app/RackWidget.cpp.o build/src/app/RackScrollWidget.cpp.o build/src/app/SVGPanel.cpp.o build/src/app/MomentarySwitch.cpp.o build/src/app/SVGPort.cpp.o build/src/app/ModuleLightWidget.cpp.o build/src/app/CircularShadow.cpp.o build/src/app/SpriteKnob.cpp.o build/src/app/Port.cpp.o build/src/app/ToggleSwitch.cpp.o build/src/app/SVGSwitch.cpp.o build/src/app/app.cpp.o build/src/app/MidiWidget.cpp.o build/src/util/random.cpp.o build/src/util/request.cpp.o build/src/util/string.cpp.o build/src/util/system.cpp.o build/src/util/logger.cpp.o build/src/dsp/minblep.cpp.o build/dep/osdialog/osdialog_gtk2.c.o -rdynamic -lpthread -lGL -ldl -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -Ldep/lib -Wl,-Bstatic -lglfw3 -lrt -ldl -lGLEW -lGLU -ldrm -lXdamage -lXfixes -lX11-xcb -lxcb-glx -lxcb-dri2 -lXxf86vm -lXext -lX11 -lxcb -lXau -lXdmcp -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto -Wl,-Bdynamic -lasound -ljack -lm -lpulse -lpulse-simple
/usr/bin/x86_64-linux-gnu-ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libXau.a(AuGetBest.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libXau.a(AuFileName.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
compile.mk:52: recipe for target 'Rack' failed
make: *** [Rack] Error 1

disclaimer: today is the first time i have tried compiling VCV Rack.

the problems i mentioned above are related to the v0.6 branch. i can build successfully if i use the v0.6.0 tag instead.

@g4z yeah, the v0.6 branch is where others are seeing (and proposing fixes for) the same error you have, I believe. If you want to build the v0.6 branch the diff above should work (it worked for me and @cschol, that is.)

EDIT: Oh, wait, I see you have a different error now. I should read more thoroughly before posting. Sorry!

@g4z I just built successfully on the latest v0.6 branch (at 2b96117 ) as follows:

$  < check out clean v0.6 branch >
$ < apply the patch at https://github.com/VCVRack/Rack/issues/887#issuecomment-381001588 >
$ git submodule update --init --recursive
$ make -j dep
$ export PKG_CONFIG_PATH=./dep/lib/pkgconfig/
$ make -j

I guess if that doesn't work for you there must be distro-specific factor at work. Here I'm on kubuntu based on ubuntu 16.04, with g++ identifying itself as: g++ (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609

(The patch I reference is my original attempt to get v0.6 branch to build, in a different issue thread on here. )

I followed your instructions above, but the make command fails for me with the -fPIC issue.

...
<snip previous output>
...
g++ -o Rack build/dep/nanovg/src/nanovg.c.o build/src/engine.cpp.o build/src/settings.cpp.o build/src/tags.cpp.o build/src/midi.cpp.o build/src/plugin.cpp.o build/src/bridge.cpp.o build/src/audio.cpp.o build/src/window.cpp.o build/src/main.cpp.o build/src/asset.cpp.o build/src/ui/MenuOverlay.cpp.o build/src/ui/RadioButton.cpp.o build/src/ui/MenuLabel.cpp.o build/src/ui/Scene.cpp.o build/src/ui/TextField.cpp.o build/src/ui/ProgressBar.cpp.o build/src/ui/Tooltip.cpp.o build/src/ui/layouts.cpp.o build/src/ui/Slider.cpp.o build/src/ui/WindowWidget.cpp.o build/src/ui/ChoiceButton.cpp.o build/src/ui/ui.cpp.o build/src/ui/PasswordField.cpp.o build/src/ui/List.cpp.o build/src/ui/MenuItem.cpp.o build/src/ui/ScrollWidget.cpp.o build/src/ui/Menu.cpp.o build/src/ui/Label.cpp.o build/src/ui/Button.cpp.o build/src/Core/QuadMIDIToCVInterface.cpp.o build/src/Core/Notes.cpp.o build/src/Core/MidiIO.cpp.o build/src/Core/AudioInterface.cpp.o build/src/Core/MIDIToCVInterface.cpp.o build/src/Core/MIDICCToCVInterface.cpp.o build/src/Core/Core.cpp.o build/src/Core/MIDITriggerToCVInterface.cpp.o build/src/Core/Blank.cpp.o build/src/app/ParamWidget.cpp.o build/src/app/RackScene.cpp.o build/src/app/LightWidget.cpp.o build/src/app/Knob.cpp.o build/src/app/ModuleBrowser.cpp.o build/src/app/AudioWidget.cpp.o build/src/app/SVGButton.cpp.o build/src/app/PluginManagerWidget.cpp.o build/src/app/WireContainer.cpp.o build/src/app/WireWidget.cpp.o build/src/app/LedDisplay.cpp.o build/src/app/MultiLightWidget.cpp.o build/src/app/SVGSlider.cpp.o build/src/app/RackRail.cpp.o build/src/app/ModuleWidget.cpp.o build/src/app/SVGKnob.cpp.o build/src/app/Toolbar.cpp.o build/src/app/RackWidget.cpp.o build/src/app/Port.cpp.o build/src/app/RackScrollWidget.cpp.o build/src/app/SVGPanel.cpp.o build/src/app/MomentarySwitch.cpp.o build/src/app/SVGPort.cpp.o build/src/app/ModuleLightWidget.cpp.o build/src/app/Panel.cpp.o build/src/app/SpriteKnob.cpp.o build/src/app/CircularShadow.cpp.o build/src/app/SVGScrew.cpp.o build/src/app/ToggleSwitch.cpp.o build/src/app/SVGSwitch.cpp.o build/src/app/app.cpp.o build/src/app/MidiWidget.cpp.o build/src/util/random.cpp.o build/src/util/request.cpp.o build/src/util/string.cpp.o build/src/util/system.cpp.o build/src/util/logger.cpp.o build/src/widgets/FramebufferWidget.cpp.o build/src/widgets/ZoomWidget.cpp.o build/src/widgets/Widget.cpp.o build/src/widgets/QuantityWidget.cpp.o build/src/widgets/TransformWidget.cpp.o build/src/widgets/SVGWidget.cpp.o build/src/widgets/SpriteWidget.cpp.o build/src/widgets/widgets.cpp.o build/src/dsp/minblep.cpp.o build/dep/osdialog/osdialog_gtk2.c.o -rdynamic -lpthread -lGL -ldl -lX11 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -Ldep/lib -Wl,-Bstatic -L/tmp/Rack/dep/lib -lglfw3 -lrt -ldl -lGLEW -lGLU -lpthread -pthread -ldl -ldrm -lXdamage -lXfixes -lX11-xcb -lxcb-glx -lxcb-dri2 -lXxf86vm -lXext -lX11 -lpthread -lxcb -lXau -lXdmcp -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto -Wl,-Bdynamic -lasound -ljack -lm
/usr/bin/x86_64-linux-gnu-ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libXau.a(AuGetBest.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/libXau.a(AuFileName.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/x86_64-linux-gnu-ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
compile.mk:52: recipe for target 'Rack' failed
make: *** [Rack] Error 1

This is the relevant section of my patched Makefile for proof.

ifeq ($(ARCH), lin)
    SOURCES += dep/osdialog/osdialog_gtk2.c
    CFLAGS += $(shell pkg-config --cflags gtk+-2.0)
    LDFLAGS += -rdynamic \
        -lpthread -lGL -ldl -lX11 \
        $(shell pkg-config --libs gtk+-2.0) \
        -Ldep/lib \
        -Wl,-Bstatic \
        $(shell pkg-config --static --libs glfw3 glew | perl -pe 's/-lGL //; s/-lm //g' ) \
        -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto \
        -Wl,-Bdynamic -lasound -ljack -lm
    TARGET := Rack
endif

I'm happy playing woth the v0.6.0 tag build for now! :)

Maybe this info may be useful:

user@localhost:/tmp/Rack$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu Bionic Beaver (development branch)
Release:    18.04
Codename:   bionic

# install g++ version
ii  g++                           4:7.3.0-3ubuntu2    amd64               GNU C++ compiler

Well, I'm a bit out of my depth, but libXau.a(AuGetBest.o): relocation R_X86_64_32 against '.rodata.str1.1 seems to suggest your libXau.a contains non-relocatable program text. According to this you can test with: readelf -d /path/to/your/libXau.a - if the output contains "TEXTREL" then there's non-relocatable code in there.

I suspect, though, that the fix I posted is deficient in some way, or redundant against future plans, since the issue is not addressed by Rack's author (which is fine! but also indicative) so sticking with the tag until the issue's fixed in the branch is probably a good strategy :)

i'm also out of my depth with this :) here's the info about libXau.a in cases it's useful in futuro..

$ readelf -d /usr/lib/x86_64-linux-gnu/libXau.a
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuDispose.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuFileName.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuGetAddr.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuGetBest.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuLock.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuRead.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuUnlock.o)
There is no dynamic section in this file.
File: /usr/lib/x86_64-linux-gnu/libXau.a(AuWrite.o)
There is no dynamic section in this file.

Thanks :) Well, though it doesn't contain the "TEXTREL" thing, that is different from the output on my system:

$ readelf -d /usr/lib/x86_64-linux-gnu/libXau.a

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuDispose.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuFileName.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuGetAddr.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuGetBest.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuLock.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuRead.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuUnlock.o)

File: /usr/lib/x86_64-linux-gnu/libXau.a(AuWrite.o)
$

I wonder if "no dynamic section" indicates the lib is unsuitable for a mixed static/dynamic build like the one at hand?

Fixed in 35f00be

nice thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

antoniotuzzi picture antoniotuzzi  路  5Comments

Coirt picture Coirt  路  7Comments

polyclash picture polyclash  路  3Comments

PixelBulb picture PixelBulb  路  4Comments

dilom picture dilom  路  7Comments