mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 23:20:08 +01:00
Fix build for darwin
Fix build for darwin, when ./configured --disable-driglx-direct - darwin ld doesn't support -Bsymbolic or --version-script, so check if ld supports those options before using them - define GLX_ALIAS_UNSUPPORTED as config/darwin used to, as aliasing of non-weak symbols isn't supported - default to -with-dri-drivers=swrast v2: Use -Wl,-Bsymbolic, as before, not -Bsymbolic Test that ld --version-script works, rather than just looking for it in ld --help Don't use -Wl,--no-undefined on darwin, either Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
parent
e0372239a5
commit
ff90a8784c
9 changed files with 63 additions and 3 deletions
44
configure.ac
44
configure.ac
|
|
@ -315,6 +315,22 @@ if test "x$enable_debug" = xyes; then
|
|||
fi
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports -Bsymbolic
|
||||
dnl
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
|
||||
AC_MSG_CHECKING([if ld supports -Bsymbolic])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
BSYMBOLIC="-Wl,-Bsymbolic";],
|
||||
[AC_MSG_RESULT([no])
|
||||
BSYMBOLIC="";])
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
|
||||
AC_SUBST([BSYMBOLIC])
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports garbage collection
|
||||
dnl
|
||||
|
|
@ -344,6 +360,28 @@ esac
|
|||
|
||||
AC_SUBST([LD_NO_UNDEFINED])
|
||||
|
||||
dnl
|
||||
dnl Check if linker supports version scripts
|
||||
dnl
|
||||
AC_MSG_CHECKING([if the linker supports version-scripts])
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
|
||||
cat > conftest.map <<EOF
|
||||
VERSION_1 {
|
||||
global:
|
||||
main;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
EOF
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[have_ld_version_script=yes;AC_MSG_RESULT(yes)],
|
||||
[have_ld_version_script=no; AC_MSG_RESULT(no)])
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
||||
|
||||
dnl
|
||||
dnl compatibility symlinks
|
||||
dnl
|
||||
|
|
@ -1043,6 +1081,12 @@ if test "x$enable_dri" = xyes; then
|
|||
with_dri_drivers="swrast"
|
||||
fi
|
||||
;;
|
||||
darwin*)
|
||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DGLX_ALIAS_UNSUPPORTED"
|
||||
if test "x$with_dri_drivers" = "xyes"; then
|
||||
with_dri_drivers="swrast"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# default drivers
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ libEGL_la_LIBADD = \
|
|||
libEGL_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-version-number 1:0 \
|
||||
-Wl,-Bsymbolic \
|
||||
$(BSYMBOLIC) \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,9 @@ GALLIUM_DRI_LINKER_FLAGS = \
|
|||
-shrext .so \
|
||||
-module \
|
||||
-avoid-version \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri.sym \
|
||||
endif
|
||||
$(GC_SECTIONS)
|
||||
|
||||
GALLIUM_VDPAU_LINKER_FLAGS = \
|
||||
|
|
@ -64,7 +66,9 @@ GALLIUM_VDPAU_LINKER_FLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/vdpau.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
@ -73,7 +77,9 @@ GALLIUM_XVMC_LINKER_FLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-version-number $(XVMC_MAJOR):$(XVMC_MINOR) \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/xvmc.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
@ -82,7 +88,9 @@ GALLIUM_OMX_LINKER_FLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/omx.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,9 @@ AM_LDFLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/egl-static/egl.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,9 @@ gbm_gallium_drm_la_LDFLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/gbm/gbm.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@ lib@OPENCL_LIBNAME@_la_LDFLAGS = \
|
|||
$(LLVM_LDFLAGS) \
|
||||
-no-undefined \
|
||||
-version-number 1:0 \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/opencl/opencl.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,9 @@ AM_LDFLAGS = \
|
|||
-module \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
if HAVE_LD_VERSION_SCRIPT
|
||||
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/pipe-loader/pipe.sym \
|
||||
endif
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ GL_LIBS = \
|
|||
GL_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-version-number 1:2 \
|
||||
-Wl,-Bsymbolic \
|
||||
$(BSYMBOLIC) \
|
||||
$(GC_SECTIONS) \
|
||||
$(LD_NO_UNDEFINED)
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ nodist_EXTRA_mesa_dri_drivers_la_SOURCES = dummy.cpp
|
|||
mesa_dri_drivers_la_SOURCES =
|
||||
mesa_dri_drivers_la_LDFLAGS = \
|
||||
-module -avoid-version -shared -shrext .so \
|
||||
-Wl,-Bsymbolic \
|
||||
$(BSYMBOLIC) \
|
||||
$(GC_SECTIONS) \
|
||||
$()
|
||||
mesa_dri_drivers_la_LIBADD = \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue