@@ -150,12 +150,22 @@ SWIFT_SRC_FILES=\
150
150
151
151
SWIFT_ABS_SRC_FILES = $(SWIFT_SRC_FILES:%=$(abs_srcdir ) /% )
152
152
SWIFT_OBJ_FILES = $(abs_builddir ) /swift/swift_overlay.o
153
+ SWIFT_LIBTOOL_OBJ_FILES = $(abs_builddir ) /swift/swift_overlay.lo
153
154
154
155
SWIFTC_FLAGS+ = -Xcc -fmodule-map-file=$(abs_top_srcdir ) /dispatch/module.modulemap -I$(abs_top_srcdir ) -Xcc -fblocks
155
156
if DISPATCH_ENABLE_OPTIMIZATION
156
157
SWIFTC_FLAGS+ =-O
157
158
endif
158
159
160
+ # this saves the object file, then tricks libtool into generating a .lo file and
161
+ # then moves the object file back in the places libtool expects them to be for
162
+ # the PIC and non-PIC case.
163
+ $(abs_builddir ) /swift/swift_overlay.lo : $(abs_builddir ) /swift/swift_overlay.o
164
+ mv $(abs_builddir ) /swift/swift_overlay.o $(abs_builddir ) /swift/.libs/swift_overlay.o.save
165
+ $(LIBTOOL ) --mode=compile --tag=CC true -o $< -c /dev/null
166
+ cp $(abs_builddir ) /swift/.libs/swift_overlay.o.save $(abs_builddir ) /swift/.libs/swift_overlay.o
167
+ mv $(abs_builddir ) /swift/.libs/swift_overlay.o.save $(abs_builddir ) /swift/swift_overlay.o
168
+
159
169
$(abs_builddir ) /swift/swift_overlay.o : $(SWIFT_ABS_SRC_FILES ) $(SWIFTC )
160
170
@rm -f $@
161
171
$(SWIFTC ) -whole-module-optimization -emit-library -c $(SWIFT_ABS_SRC_FILES ) \
@@ -165,8 +175,8 @@ $(abs_builddir)/swift/swift_overlay.o: $(SWIFT_ABS_SRC_FILES) $(SWIFTC)
165
175
libdispatch_la_SOURCES+ =swift/DispatchStubs.cc
166
176
EXTRA_libdispatch_la_SOURCES+ =$(SWIFT_SRC_FILES )
167
177
168
- EXTRA_libdispatch_la_DEPENDENCIES+ =$(SWIFT_OBJ_FILES ) $(abs_builddir ) /swift/Dispatch.swiftmodule
169
- libdispatch_la_LIBADD+ =$(SWIFT_OBJ_FILES )
178
+ EXTRA_libdispatch_la_DEPENDENCIES+ =$(SWIFT_OBJ_FILES ) $(SWIFT_LIBTOOL_OBJ_FILES ) $( abs_builddir ) /swift/Dispatch.swiftmodule
179
+ libdispatch_la_LIBADD+ =$(SWIFT_LIBTOOL_OBJ_FILES )
170
180
171
181
SWIFT_GEN_FILES = \
172
182
$(abs_builddir ) /swift/Dispatch.swiftmodule \
0 commit comments