From 84f3ff91d967887545363cc826b118120a135a58 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 4 Nov 2005 00:52:08 +0000 Subject: [PATCH] fix MinGW problems (bug 4956) --- src/mesa/Makefile.mgw | 22 ++++++++++++++++------ src/mesa/main/glheader.h | 2 +- src/mesa/x86/assyntax.h | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/mesa/Makefile.mgw b/src/mesa/Makefile.mgw index 30b32660cba..ebec5c055a8 100644 --- a/src/mesa/Makefile.mgw +++ b/src/mesa/Makefile.mgw @@ -57,6 +57,9 @@ .INTERMEDIATE: x86/gen_matypes.exe .SUFFIXES: .rc .res +# Set this to the prefix of your build tools, i.e. mingw32- +TOOLS_PREFIX = mingw32- + TOP = ../.. GLIDE ?= $(TOP)/glide3 LIBDIR = $(TOP)/lib @@ -70,7 +73,7 @@ endif LDLIBS = -lgdi32 -CC = mingw32-gcc +CC = $(TOOLS_PREFIX)gcc CFLAGS += -DBUILD_GL32 -D_OPENGL32_ CFLAGS += $(INCLUDE_DIRS) CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1 @@ -91,9 +94,11 @@ endif AR = ar ARFLAGS = crus -ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) UNLINK = del $(subst /,\,$(1)) -else +ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) +UNLINK = $(RM) $(1) +endif +ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),) UNLINK = $(RM) $(1) endif @@ -142,10 +147,15 @@ RESOURCE = $(GL_RES:.rc=.res) .rc.res: windres -o $@ -Irc -Ocoff $< -all: $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP) +all: $(LIBDIR) $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP) + +$(LIBDIR): + mkdir -p $(LIBDIR) $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP): $(OBJECTS) $(RESOURCE) - dllwrap -o $(LIBDIR)/$(GL_DLL) --output-lib $(LIBDIR)/$(GL_IMP) --target i386-mingw32 --def $(GL_DEF) $^ $(LDLIBS) + $(TOOLS_PREFIX)dllwrap -o $(LIBDIR)/$(GL_DLL) --output-lib $(LIBDIR)/$(GL_IMP) \ + --target i386-mingw32 --def $(GL_DEF) -Wl,-enable-stdcall-fixup \ + $^ $(LDLIBS) $(X86_OBJECTS): x86/matypes.h @@ -163,7 +173,7 @@ x86/gen_matypes.exe: x86/gen_matypes.c # with USE_X86_ASM (useful for trace/debug) ifeq (1,1) x86/glapi_x86.o: x86/glapi_x86.S - $(CC) -o $@ $(CFLAGS) -U__WIN32__ -DSTDCALL_API -c $< + $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< else main/dispatch.o: main/dispatch.c $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 4c75585c4d2..4e3e3b5d288 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -71,7 +71,7 @@ /* Get typedefs for uintptr_t and friends */ -#if defined(_WIN32) +#if defined(_WIN32) && !defined(__MINGW32__) #include #if _MSC_VER == 1200 typedef UINT_PTR uintptr_t; diff --git a/src/mesa/x86/assyntax.h b/src/mesa/x86/assyntax.h index 4b7317b0805..9bceacebdb6 100644 --- a/src/mesa/x86/assyntax.h +++ b/src/mesa/x86/assyntax.h @@ -1736,7 +1736,7 @@ SECTION _DATA public align=16 class=DATA use32 flat */ #if defined(GNU_ASSEMBLER) && !defined(__DJGPP__) && !defined(__MINGW32__) # define HIDDEN(x) .hidden x -#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 +#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 && !defined(__MINGW32__) # pragma GCC visibility push(default) # define HIDDEN(x) .hidden x #else -- 2.30.2