Module: Mesa Branch: master Commit: 635477dc4b9579dac2fc0fb332dcf2e0e48dd418 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=635477dc4b9579dac2fc0fb332dcf2e0e48dd418
Author: Jonathan Gray <[email protected]> Date: Tue Sep 2 02:08:00 2014 +1000 automake: check if the linker supports --dynamic-list As older versions of gnu ld did not support --dynamic-list check to see if it is supported before using it. Non gnu linkers such the apple one likely lack this option as well. Fixes the build on OpenBSD which has binutils 2.15 and 2.17. The --dynamic-list option seems to been have introduced sometime after binutils 2.17 was released as it is present in 2.18. Cc: [email protected] Signed-off-by: Jonathan Gray <[email protected]> Reviewed-by: Emil Velikov <[email protected]> --- configure.ac | 18 ++++++++++++++++++ src/gallium/targets/dri/Makefile.am | 6 +++++- src/gallium/targets/vdpau/Makefile.am | 6 +++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 9d2ddb4..f7525fe 100644 --- a/configure.ac +++ b/configure.ac @@ -358,6 +358,24 @@ LDFLAGS=$save_LDFLAGS AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") dnl +dnl Check if linker supports dynamic list files +dnl +AC_MSG_CHECKING([if the linker supports --dynamic-list]) +save_LDFLAGS=$LDFLAGS +LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn" +cat > conftest.dyn <<EOF +{ + radeon_drm_winsys_create; +}; +EOF +AC_LINK_IFELSE( + [AC_LANG_SOURCE([int main() { return 0;}])], + [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)], + [have_ld_dynamic_list=no; AC_MSG_RESULT(no)]) +LDFLAGS=$save_LDFLAGS +AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes") + +dnl dnl compatibility symlinks dnl case "$host_os" in diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am index 70b19b8..1c33a91 100644 --- a/src/gallium/targets/dri/Makefile.am +++ b/src/gallium/targets/dri/Makefile.am @@ -26,7 +26,6 @@ gallium_dri_la_LDFLAGS = \ -shrext .so \ -module \ -avoid-version \ - -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn \ $(GC_SECTIONS) if HAVE_LD_VERSION_SCRIPT @@ -34,6 +33,11 @@ gallium_dri_la_LDFLAGS += \ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri/dri.sym endif # HAVE_LD_VERSION_SCRIPT +if HAVE_LD_DYNAMIC_LIST +gallium_dri_la_LDFLAGS += \ + -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn +endif # HAVE_LD_DYNAMIC_LIST + gallium_dri_la_LIBADD = \ $(top_builddir)/src/mesa/libmesagallium.la \ $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \ diff --git a/src/gallium/targets/vdpau/Makefile.am b/src/gallium/targets/vdpau/Makefile.am index 6c92cd8..440cf22 100644 --- a/src/gallium/targets/vdpau/Makefile.am +++ b/src/gallium/targets/vdpau/Makefile.am @@ -15,7 +15,6 @@ libvdpau_gallium_la_LDFLAGS = \ -module \ -no-undefined \ -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) \ - -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn \ $(GC_SECTIONS) \ $(LD_NO_UNDEFINED) @@ -24,6 +23,11 @@ libvdpau_gallium_la_LDFLAGS += \ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/vdpau/vdpau.sym endif # HAVE_LD_VERSION_SCRIPT +if HAVE_LD_DYNAMIC_LIST +libvdpau_gallium_la_LDFLAGS += \ + -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn +endif # HAVE_LD_DYNAMIC_LIST + libvdpau_gallium_la_LIBADD = \ $(top_builddir)/src/gallium/state_trackers/vdpau/libvdpautracker.la \ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
