diff --git a/configure.ac b/configure.ac index 44b906696..ea74ad3f5 100644 --- a/configure.ac +++ b/configure.ac @@ -728,6 +728,15 @@ if test "x$GCC" = "xyes"; then XSERVER_CFLAGS="$GCC_WARNINGS $XSERVER_CFLAGS" fi +# The Xorg binary needs to export symbols so that they can be used from modules +# Some platforms require extra flags to do this. gcc should set these flags +# when -rdynamic is passed to it, other compilers/linkers may need to be added +# here. +if test "x$GCC" = "xyes"; then + LD_EXPORT_SYMBOLS_FLAG="-rdynamic" +fi +AC_SUBST([LD_EXPORT_SYMBOLS_FLAG]) + AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix]) AC_SUBST([XORG_CFLAGS]) diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index 342d8a094..b6cb1adaa 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -33,4 +33,4 @@ Xorg_LDADD = $(XORG_LIBS) \ @XSERVER_LIBS@ \ -ldl -Xorg_LDFLAGS = -rdynamic +Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)