Skip to content

Commit 493650f

Browse files
author
theuni
committed
build: 3rd party lib linking symbols cleanup
Fix several linking concerns that are usually masked in one way or another. To see, add -Wl,--unresolved-symbols=ignore-in-shared-libs to LDFLAGS 1. The 3rd party libs that we build can't resolve our wrapped functions until runtime, so tell the linker not to expect them. 2. Various vis and screensavers were relying on XBMC bringing in GL libs. With these fixes, linking opts like --unresolved-symbols=ignore-in-shared-libs now work properly. This is useful for annoying libs like gles or egl which may depend on other libs that cannot resolve at link-time. TODO: ProjectM still neeeds attention
1 parent 4511eb1 commit 493650f

File tree

15 files changed

+27
-15
lines changed

15 files changed

+27
-15
lines changed

lib/cximage-6.0/Makefile.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ifeq ($(findstring osx,$(ARCH)), osx)
2222
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o CxImage/*.o jasper/*/*.o jbig/*.o raw/*.o
2323
else
2424
$(CXX) $(CFLAGS) $(LDFLAGS) -shared -o $(SLIB) -Wl,--whole-archive $(SLIBS) \
25-
-Wl,--no-whole-archive -lpng -ljasper -ljpeg -ltiff -lz \
25+
-Wl,--no-whole-archive -lpng -ljasper -ljpeg -ltiff -lz -Wl,--unresolved-symbols=ignore-all \
2626
`cat ../../xbmc/cores/DllLoader/exports/wrapper.def` \
2727
../../xbmc/cores/DllLoader/exports/wrapper.o
2828
endif

lib/libdvd/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,12 @@ else
5656

5757
$(SYSDIR)/libdvdcss-$(ARCH).so: $(WRAPPER) libdvdcss/src/.libs/libdvdcss.a
5858
$(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ \
59-
libdvdcss/src/*.o \
59+
libdvdcss/src/*.o -Wl,--unresolved-symbols=ignore-all \
6060
`cat $(WRAPPER:.o=.def)` $(WRAPPER)
6161

6262
$(SYSDIR)/libdvdnav-$(ARCH).so: $(WRAPPER) $(DVDCSS_A) libdvdread/obj/libdvdread.a libdvdnav/obj/libdvdnav.a
6363
$(CC) -o $@ $(LDFLAGS) -Wl,--soname,$@ $(DVDCSS_O) libdvdread/obj/*.o libdvdnav/obj/*.o \
64+
-Wl,--unresolved-symbols=ignore-all \
6465
`cat $(WRAPPER:.o=.def)` $(WRAPPER)
6566

6667
endif

lib/libexif/Makefile.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ifeq ($(findstring osx,$(ARCH)), osx)
1414
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
1515
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS)
1616
else
17-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) \
17+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
1818
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
1919
endif
2020

lib/libhdhomerun/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
2424
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
2525
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS)
2626
else
27-
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -shared -o $@ `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` \
27+
$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -shared -o $@ -Wl,--unresolved-symbols=ignore-all \
28+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` \
2829
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
2930
endif
3031

lib/libid3tag/Makefile.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ $(SLIB): libid3tag/.libs/libid3tag.dylib
1616
chmod +x $@
1717
else
1818
$(SLIB): libid3tag/.libs/libid3tag.so
19-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -fPIC -o $@ libid3tag/.libs/*.o \
19+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -fPIC -Wl,--unresolved-symbols=ignore-all -o $@ libid3tag/.libs/*.o \
2020
`cat ../../xbmc/cores/DllLoader/exports/wrapper.def` \
2121
../../xbmc/cores/DllLoader/exports/wrapper.o
2222
endif

lib/libsidplay2/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
5757
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
5858
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS) $(BUNDLE1_O)
5959
else
60-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
60+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
61+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
6162
endif
6263

6364
include @abs_top_srcdir@/Makefile.include

lib/nosefart/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
3131
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
3232
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS) $(BUNDLE1_O)
3333
else
34-
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
34+
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
35+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
3536
endif
3637

3738
include @abs_top_srcdir@/Makefile.include

lib/snesapu/SNES/SNESAPU/Makefile.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ ifeq ($(findstring osx,$(ARCH)), osx)
2121
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
2222
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS)
2323
else
24-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) \
24+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
2525
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
2626
endif
2727

lib/stsound/StSoundLibrary/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
2424
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
2525
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS) $(BUNDLE1_O)
2626
else
27-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
27+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
28+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
2829
endif
2930

3031
include @abs_top_srcdir@/Makefile.include

lib/timidity/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
5656
$(CXX) $(LDFLAGS) -Wl,-alias_list,@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_alias -bundle \
5757
-undefined dynamic_lookup -read_only_relocs suppress -o $@ @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS) $(BUNDLE1_O)
5858
else
59-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o -Wl,--version-script=exports.def
59+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` \
60+
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o -Wl,--version-script=exports.def
6061
endif
6162

6263
include @abs_top_srcdir@/Makefile.include

lib/vgmstream/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
199199
-bundle -undefined dynamic_lookup -read_only_relocs suppress -o $@ \
200200
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o $(OBJS) $(BUNDLE1_O)
201201
else
202-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
202+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $@ $(OBJS) -Wl,--unresolved-symbols=ignore-all \
203+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
203204

204205
endif
205206

lib/xbadpcm/Makefile.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ ifeq ($(findstring osx,$(ARCH)), osx)
1212
@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o *.o $(BUNDLE1_O)
1313
chmod +x $@
1414
else
15-
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ *.o `cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
15+
$(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ *.o -Wl,--unresolved-symbols=ignore-all \
16+
`cat @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.def` @abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
1617
endif
1718

1819
include @abs_top_srcdir@/Makefile.include

xbmc/screensavers/rsxs-0.9/xbmc/Makefile.in

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,23 @@ ifeq ($(findstring osx,$(ARCH)), osx)
2828
$(CXX) $(CXXFLAGS) $(LDFLAGS) -bundle -flat_namespace -undefined dynamic_lookup \
2929
-o $(SOLARWINDS-OUT) $(RSXS)/src/solarwinds/*.o $(RSXS-OBJS)
3030
else
31-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(SOLARWINDS-OUT) $(RSXS)/src/solarwinds/*.o $(RSXS-OBJS) -lXmu
31+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(SOLARWINDS-OUT) $(RSXS)/src/solarwinds/*.o $(RSXS-OBJS) -lXmu -lGL -lX11 -lGLU
3232
endif
3333

3434
$(PLASMA-OUT): $(PLASMA-DEP)
3535
ifeq ($(findstring osx,$(ARCH)), osx)
3636
$(CXX) $(CXXFLAGS) $(LDFLAGS) -bundle -flat_namespace -undefined dynamic_lookup \
3737
-o $(PLASMA-OUT) $(RSXS)/src/plasma/*.o $(RSXS-OBJS)
3838
else
39-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(PLASMA-OUT) $(RSXS)/src/plasma/*.o $(RSXS-OBJS) -lXmu
39+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(PLASMA-OUT) $(RSXS)/src/plasma/*.o $(RSXS-OBJS) -lXmu -lGL -lX11 -lGLU
4040
endif
4141

4242
$(EUPHORIA-OUT): $(EUPHORIA-DEP)
4343
ifeq ($(findstring osx,$(ARCH)), osx)
4444
$(CXX) $(CXXFLAGS) $(LDFLAGS) -bundle -flat_namespace -undefined dynamic_lookup \
4545
-o $(EUPHORIA-OUT) $(RSXS)/src/euphoria/*.o $(RSXS)/src/pngimage.o $(RSXS-OBJS) -lpng
4646
else
47-
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(EUPHORIA-OUT) $(RSXS)/src/euphoria/*.o $(RSXS)/src/pngimage.o $(RSXS-OBJS) -lXmu -lpng
47+
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -o $(EUPHORIA-OUT) $(RSXS)/src/euphoria/*.o $(RSXS)/src/pngimage.o $(RSXS-OBJS) -lXmu -lpng -lGL -lX11 -lGLU
4848
endif
4949

5050
$(SOLARWINDS-DEP) : $(RSXS)

xbmc/visualizations/OpenGLSpectrum/Makefile.in

+2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ SLIB=@abs_top_srcdir@/addons/visualization.glspectrum/opengl_spectrum.vis
77
ifeq (@USE_OPENGLES@,1)
88
OBJS+=../EGLHelpers/Shader.o ../EGLHelpers/GUIShader.o ../../guilib/MatrixGLES.o
99
DEFINES+=-DHAS_GLES
10+
LDFLAGS+=-lGLESv2
1011
else
1112
DEFINES+=-DHAS_SDL
1213
DEFINES+=-DHAS_SDL_OPENGL
14+
LDFLAGS+=-lGL
1315
endif
1416

1517
$(SLIB): $(OBJS)

xbmc/visualizations/WaveForm/Makefile.in

+2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ SLIB=@abs_top_srcdir@/addons/visualization.waveform/Waveform.vis
88
ifeq (@USE_OPENGLES@,1)
99
OBJS=Main_gles.o ../EGLHelpers/Shader.o ../EGLHelpers/GUIShader.o ../../guilib/MatrixGLES.o
1010
DEFINES+=-DHAS_GLES
11+
LDFLAGS+=-lGLESv2
1112
else
1213
DEFINES+=-DHAS_SDL_OPENGL
14+
LDFLAGS+=-lGL -lGLU
1315
endif
1416

1517
$(SLIB): $(OBJS)

0 commit comments

Comments
 (0)