Hi Emil, Emil Velikov schrieb am 29.03.2014 14:21: > On 29/03/14 12:37, Kai Wasserbäch wrote: >> I saw one of your patches currently in review touching the Makefile.am of >> libxatracker. Can you squeeze in another patch, that ensures, that the >> library >> only exports its own symbols and not the entirety of LLVM as well? Because >> somewhere between 4c79f088c0 and 9b6b084eb7, that started to happen. My >> 4c79f088c0 build only exported symbols for xa_* functions, the current build >> of >> 9b6b084eb7 adds some ten thousand LLVM symbols. >> > Yes that is the privilege of using LLVM, you export the whole LLVM world as > soon as you go anywhere near it :P > > My initial plan was to do another round of "cleanup the exported symbols" > but got sidetracked by stripping out duplication and making sure that the > libraries just work (tm). > >> I tried a version script and and -export-symbols-regex '^xa_.*$$', which >> really >> got added to the linking command, according to the build log, but didn't have >> any impact on the actually exported symbols. I'm probably missing something >> as >> I'm not too well versed in how to do things with Automake. >> > Strange... things were working fine last time I've checked. While I try to > reproduce what build options are you using, LLVM version ? Can I take a look > at the patch that you've used ?
Sure. I've tried several variants of the attached
"0001-Build-libxatracker-Only-export-our-own-symbols.patch", where I replaced
"LDFLAGS" with "AM_LDFLAGS" and "libxatracker_la_LDFLAGS". The last didn't work
at all and Automake warned, that no library is using the name libxatracker_la,
even though just a few lines up there was "libxatracker_la_SOURCES". I also
tried listing all symbols explicitly in the version script, but that didn't
change anything either.
The second approach was really just patching the Makefile to add the
-export-symbols-regex '^xa_.*$'
to the LDFLAGS. I did it the same way, it's used with the OMX stuff, see the
attached patch "0001-Build-libxatracker-pass-export-symbols-regex-to-link.patch"
As far as my build goes, I'm using the following configure options (basically
what Debian's mesa package uses, except, that I'm using a development snapshot
of LLVM 3.5, and compile LLVM in statically – I was unable to configure Mesa
against Debian's LLVM package for dynamic linking, unless I would patch the
configure.ac):
configure --prefix=/usr --mandir=\${prefix}/share/man \
--infodir=\${prefix}/share/info --sysconfdir=/etc \
--libdir=\${prefix}/lib/x86_64-linux-gnu \
--localstatedir=/var --disable-silent-rules \
--build=x86_64-linux-gnu --enable-dri --with-dri-drivers=" nouveau i915 i965
r200 radeon" \
--with-dri-driverdir=/usr/lib/x86_64-linux-gnu/dri \
--with-dri-searchpath='/usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri'
\
--enable-osmesa --enable-glx-tls --enable-shared-glapi --enable-texture-float
--enable-xa \
--disable-xvmc --enable-driglx-direct --enable-dri3 --with-egl-platforms="x11
drm wayland" \
--enable-opencl --enable-opencl-icd --enable-gallium-llvm --enable-vdpau \
--with-gallium-drivers=" nouveau svga swrast r600 r300 radeonsi"
--enable-gles1 \
--enable-gles2 --enable-openvg --enable-gallium-egl \
CFLAGS="-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -Wall" \
CPPFLAGS="-D_FORTIFY_SOURCE=2" \
CXXFLAGS="-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -Wall" \
FFLAGS="-g -O2 -fstack-protector --param=ssp-buffer-size=4" \
GCJFLAGS="-g -O2 -fstack-protector --param=ssp-buffer-size=4"
LDFLAGS="-Wl,-z,relro" \
--disable-llvm-shared-libs \
ac_cv_path_LLVM_CONFIG=llvm-config-3.5
LLVM is at SVN:trunk/r204915 (the packages from <http://llvm.org/apt>, which are
maintained by Debian's LLVM maintainer).
> Btw. feel free Cc the ML as other people may have spotted/resolved this
> (kind of) issue(s). Even if I cocked up something I do not mind being called
> out :)
Done.
> ...
> Hmm I cannot see how any of the commits in that range may be causing such
> problem. Can you please confirm that it's not a "stale file" issue - git
> clean -nxd should help out.
Yes, I'm sure of that. I'm always building in a clean chroot with pbuilder. No
stale files around.
> P.S. Why does BlunderBird throws a hissy fit when replying to a signed emails.
> It's not like it's a "new and unknown thing". Am I asking for too much ?
Do you have Enigmail installed?
Cheers,
Kai
--
Kai Wasserbäch (Kai Wasserbaech)
E-Mail: [email protected]
From a8ea1a8989a8f1c337c2249b71829b48690ff671 Mon Sep 17 00:00:00 2001 Message-Id: <a8ea1a8989a8f1c337c2249b71829b48690ff671.1396101923.git....@dev.carbon-project.org> From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <[email protected]> Date: Sat, 29 Mar 2014 15:04:22 +0100 Subject: [PATCH] Build: libxatracker: Only export our own symbols. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kai Wasserbäch <[email protected]> --- src/gallium/state_trackers/xa/Makefile.am | 2 ++ src/gallium/state_trackers/xa/xa.link | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 src/gallium/state_trackers/xa/xa.link diff --git a/src/gallium/state_trackers/xa/Makefile.am b/src/gallium/state_trackers/xa/Makefile.am index 72486b9..16d0354 100644 --- a/src/gallium/state_trackers/xa/Makefile.am +++ b/src/gallium/state_trackers/xa/Makefile.am @@ -36,6 +36,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/gallium/winsys \ -I$(top_srcdir)/src/gallium/drivers +LDFLAGS += -Wl,--version-script=$(top_srcdir)/src/gallium/state_trackers/xa/xa.link + xa_includedir = $(includedir) xa_include_HEADERS = \ xa_composite.h \ diff --git a/src/gallium/state_trackers/xa/xa.link b/src/gallium/state_trackers/xa/xa.link new file mode 100644 index 0000000..daebcd5 --- /dev/null +++ b/src/gallium/state_trackers/xa/xa.link @@ -0,0 +1,5 @@ +VERSION { + global: + xa_*; + local: *; +}; -- 1.9.1
From 4464424b83c4280ac2fe7affbf09d74d31f5ef19 Mon Sep 17 00:00:00 2001 Message-Id: <4464424b83c4280ac2fe7affbf09d74d31f5ef19.1396102487.git....@dev.carbon-project.org> From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <[email protected]> Date: Sat, 29 Mar 2014 15:13:55 +0100 Subject: [PATCH] Build: libxatracker: pass -export-symbols-regex to linker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Try to just export the xa_* symbols. Signed-off-by: Kai Wasserbäch <[email protected]> --- src/gallium/state_trackers/xa/Makefile.am | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/state_trackers/xa/Makefile.am b/src/gallium/state_trackers/xa/Makefile.am index 72486b9..d537b81 100644 --- a/src/gallium/state_trackers/xa/Makefile.am +++ b/src/gallium/state_trackers/xa/Makefile.am @@ -23,6 +23,8 @@ include Makefile.sources include $(top_srcdir)/src/gallium/Automake.inc +EXPORTS = '^xa_.*$$' + AM_CFLAGS = \ -Wall -pedantic \ $(GALLIUM_CFLAGS) \ @@ -36,6 +38,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/gallium/winsys \ -I$(top_srcdir)/src/gallium/drivers +AM_LDFLAGS = -export-symbols-regex $(EXPORTS) + xa_includedir = $(includedir) xa_include_HEADERS = \ xa_composite.h \ -- 1.9.1
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
