Commit ff90a878 authored by Jon TURNEY's avatar Jon TURNEY

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: default avatarJon TURNEY <jon.turney@dronecode.org.uk>
Reviewed-by: default avatarJeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: default avatarEmil Velikov <emil.l.velikov@gmail.com>
parent e0372239
......@@ -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 = \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment