Commit eaa77e9
committed
fix libdispatch.a
The static version (`libdispatch.a`) that can be compiled using
`./configure --enable static=yes` was missing all the Swift overlay symbols
(everything in `swift_overlay.o`). The reason for that is that the linker is
invoked through libtool which wants `.lo` files but the Swift overlay got passed
as a `.o` file. This first of all leads to this warning:
*** Warning: Linking the shared library libdispatch.la against the non-libtool
*** objects [...]/swift_overlay.o is not portable!
And the result is that libtool doesn't include `swift_overlay.o` when putting
together the static library `libdispatch.a`.
This patch fixes this problem is a pretty crude way. The real problem is that
libtool doesn't understand Swift. So it can't be used when compiling
`swift_overlay.o`. In order to still get a `.lo` file this patch tricks libtool
into generating one from the `swift_overlay.o` generated by `swiftc`. It's very
hacky but I'm not sure what else to do.1 parent 10eb0e4 commit eaa77e9
1 file changed
+12
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
151 | 152 | | |
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
156 | 157 | | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
157 | 167 | | |
158 | 168 | | |
159 | 169 | | |
| |||
163 | 173 | | |
164 | 174 | | |
165 | 175 | | |
166 | | - | |
167 | | - | |
| 176 | + | |
| 177 | + | |
168 | 178 | | |
169 | 179 | | |
170 | 180 | | |
| |||
0 commit comments