@@ -31,32 +31,37 @@ ifeq ($(CFG_OSTYPE), FreeBSD)
31
31
endif
32
32
CFG_UNIXY := 1
33
33
CFG_LDENV := LD_LIBRARY_PATH
34
+ CFG_DEF_SUFFIX := .bsd.def
34
35
endif
35
36
36
37
ifeq ($(CFG_OSTYPE ) , Linux)
37
38
CFG_LIB_NAME =lib$(1 ) .so
38
39
CFG_GCC_CFLAGS += -fPIC -march=i686
39
40
CFG_GCC_LINK_FLAGS += -shared -fPIC -ldl -lpthread -lrt
41
+ CFG_GCC_DEF_FLAG :=
40
42
ifeq ($(CFG_CPUTYPE), x86_64)
41
43
CFG_GCC_CFLAGS += -m32
42
44
CFG_GCC_LINK_FLAGS += -m32
43
45
endif
44
46
CFG_UNIXY := 1
45
47
CFG_LDENV := LD_LIBRARY_PATH
48
+ CFG_DEF_SUFFIX := .linux.def
46
49
endif
47
50
48
51
ifeq ($(CFG_OSTYPE ) , Darwin)
49
52
CFG_LIB_NAME =lib$(1 ) .dylib
50
53
CFG_UNIXY := 1
51
54
CFG_LDENV := DYLD_LIBRARY_PATH
52
55
CFG_GCC_LINK_FLAGS += -dynamiclib -lpthread
56
+ CFG_GCC_DEF_FLAG := -exported_symbols_list
53
57
# Darwin has a very blurry notion of "64 bit", and claims it's running
54
58
# "on an i386" when the whole userspace is 64-bit and the compiler
55
59
# emits 64-bit binaries by default. So we just force -m32 here. Smarter
56
60
# approaches welcome!
57
61
CFG_GCC_CFLAGS += -m32
58
62
CFG_GCC_LINK_FLAGS += -m32
59
63
CFG_DSYMUTIL := dsymutil
64
+ CFG_DEF_SUFFIX := .darwin.def
60
65
endif
61
66
62
67
ifneq ($(findstring MINGW,$(CFG_OSTYPE ) ) ,)
@@ -84,6 +89,7 @@ ifdef CFG_WINDOWSY
84
89
endif
85
90
CFG_GCC_CFLAGS += -march=i686
86
91
CFG_GCC_LINK_FLAGS += -shared -fPIC
92
+ CFG_DEF_SUFFIX := .def
87
93
endif
88
94
89
95
ifdef CFG_UNIXY
@@ -141,16 +147,12 @@ ifdef CFG_GCC
141
147
CFG_GCC_LINK_FLAGS += -g
142
148
CFG_COMPILE_C = $(CFG_GCC_CROSS ) g++ $(CFG_GCC_CFLAGS ) -c -o $(1 ) $(2 )
143
149
CFG_DEPEND_C = $(CFG_GCC_CROSS ) g++ $(CFG_GCC_CFLAGS ) -MT "$(1 ) " -MM $(2 )
150
+ CFG_LINK_C = $(CFG_GCC_CROSS ) g++ $(CFG_GCC_LINK_FLAGS ) -o $(1 ) \
151
+ $(CFG_GCC_DEF_FLAG ) $(3 ) $(2 )
144
152
else
145
153
CFG_ERR := $(error please try on a system with gcc)
146
154
endif
147
155
148
- ifdef CFG_WINDOWSY
149
- CFG_LINK_C = $(CFG_GCC_CROSS ) g++ $(CFG_GCC_LINK_FLAGS ) -o $(1 ) $(3 ) $(2 )
150
- else
151
- CFG_LINK_C = $(CFG_GCC_CROSS ) g++ $(CFG_GCC_LINK_FLAGS ) -o $(1 ) $(2 )
152
- endif
153
-
154
156
ifdef CFG_OCAMLC_OPT
155
157
$(info cfg : have ocaml native compiler)
156
158
OPT =.opt
@@ -342,7 +344,7 @@ RUNTIME_HDR := rt/globals.h \
342
344
rt/test/rust_test_runtime.h \
343
345
rt/test/rust_test_util.h
344
346
345
- RUNTIME_DEF := $(S ) src/rt/rustrt.def
347
+ RUNTIME_DEF := $(S ) src/rt/rustrt$( CFG_DEF_SUFFIX )
346
348
RUNTIME_INCS := -I $(S ) src/rt/isaac -I $(S ) src/rt/uthash
347
349
RUNTIME_OBJS := $(RUNTIME_CS:.cpp=.o )
348
350
@@ -354,7 +356,7 @@ RUSTLLVM_CS := $(addprefix rustllvm/, \
354
356
MachOObjectFile.cpp Object.cpp RustWrapper.cpp)
355
357
356
358
RUSTLLVM_HDR := rustllvm/include/llvm-c/Object.h
357
- RUSTLLVM_DEF := $(S ) src/rustllvm/rustllvm.def
359
+ RUSTLLVM_DEF := $(S ) src/rustllvm/rustllvm$( CFG_DEF_SUFFIX )
358
360
359
361
RUSTLLVM_INCS := -iquote $(CFG_LLVM_INCDIR ) \
360
362
-iquote $(S ) src/rustllvm/include
0 commit comments