Mesa (master): winsys/drm: Do not use --whole-archive in Makefile.egl.

Chia-I Wu olv at kemper.freedesktop.org
Thu Feb 18 05:07:41 UTC 2010


Module: Mesa
Branch: master
Commit: 9a939adf7d25f273048d5f92cf9d96d10e664c23
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a939adf7d25f273048d5f92cf9d96d10e664c23

Author: Chia-I Wu <olv at lunarg.com>
Date:   Thu Feb 18 12:38:47 2010 +0800

winsys/drm: Do not use --whole-archive in Makefile.egl.

--whole-archive is not portable.  Have the drivers reference _eglMain as
a poor man's --whole-archive.

---

 src/gallium/winsys/drm/Makefile.egl        |    3 +--
 src/gallium/winsys/drm/i965/egl/dummy.c    |    4 +++-
 src/gallium/winsys/drm/intel/egl/dummy.c   |    4 +++-
 src/gallium/winsys/drm/nouveau/egl/dummy.c |    4 +++-
 src/gallium/winsys/drm/radeon/egl/dummy.c  |    4 +++-
 src/gallium/winsys/drm/swrast/egl/dummy.c  |    4 +++-
 src/gallium/winsys/drm/vmware/egl/dummy.c  |    4 +++-
 7 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/gallium/winsys/drm/Makefile.egl b/src/gallium/winsys/drm/Makefile.egl
index b1f2038..8363de6 100644
--- a/src/gallium/winsys/drm/Makefile.egl
+++ b/src/gallium/winsys/drm/Makefile.egl
@@ -38,8 +38,7 @@ $(EGL_DISPLAY_LIBS): $(TOP)/$(LIB_DIR)/%.so: %.so
 
 define mklib-egl
 $(MKLIB) -o $@ -noprefix -linker '$(CC)' -ldflags '$(LDFLAGS)' \
-	$(MKLIB_OPTIONS) $(EGL_DRIVER_OBJECTS) \
-	-Wl,--whole-archive $($(1)_ST) -Wl,--no-whole-archive \
+	$(MKLIB_OPTIONS) $(EGL_DRIVER_OBJECTS) $($(1)_ST) \
 	$(EGL_DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $($(1)_LIBS) $(EGL_DRIVER_LIBS)
 endef
 
diff --git a/src/gallium/winsys/drm/i965/egl/dummy.c b/src/gallium/winsys/drm/i965/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/i965/egl/dummy.c
+++ b/src/gallium/winsys/drm/i965/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;
diff --git a/src/gallium/winsys/drm/intel/egl/dummy.c b/src/gallium/winsys/drm/intel/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/intel/egl/dummy.c
+++ b/src/gallium/winsys/drm/intel/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;
diff --git a/src/gallium/winsys/drm/nouveau/egl/dummy.c b/src/gallium/winsys/drm/nouveau/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/nouveau/egl/dummy.c
+++ b/src/gallium/winsys/drm/nouveau/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;
diff --git a/src/gallium/winsys/drm/radeon/egl/dummy.c b/src/gallium/winsys/drm/radeon/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/radeon/egl/dummy.c
+++ b/src/gallium/winsys/drm/radeon/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;
diff --git a/src/gallium/winsys/drm/swrast/egl/dummy.c b/src/gallium/winsys/drm/swrast/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/swrast/egl/dummy.c
+++ b/src/gallium/winsys/drm/swrast/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;
diff --git a/src/gallium/winsys/drm/vmware/egl/dummy.c b/src/gallium/winsys/drm/vmware/egl/dummy.c
index 4a1bc28..3181d0b 100644
--- a/src/gallium/winsys/drm/vmware/egl/dummy.c
+++ b/src/gallium/winsys/drm/vmware/egl/dummy.c
@@ -1 +1,3 @@
-/* mklib expects at least one object file */
+/* A poor man's --whole-archive for EGL drivers */
+void *_eglMain(void *);
+void *_eglWholeArchive = (void *) _eglMain;




More information about the mesa-commit mailing list