243 |
243 |
244 ifneq ($(PLATFORM), macosx) |
244 ifneq ($(PLATFORM), macosx) |
245 ARFLAGS = -r |
245 ARFLAGS = -r |
246 endif |
246 endif |
247 |
247 |
|
248 ifeq ($(PLATFORM), solaris) |
|
249 ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) |
|
250 $(ACTUAL_LIBRARY):: $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) |
|
251 endif |
|
252 endif |
|
253 |
248 $(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder) |
254 $(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder) |
249 @$(prep-target) |
255 @$(prep-target) |
250 @$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)" |
256 @$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)" |
251 @$(ECHO) "Rebuilding $@ because of $?" |
257 @$(ECHO) "Rebuilding $@ because of $?" |
252 ifeq ($(LIBRARY), fdlibm) |
258 ifeq ($(LIBRARY), fdlibm) |
258 $(MCS) -d -a "$(FULL_VERSION)" $@ |
264 $(MCS) -d -a "$(FULL_VERSION)" $@ |
259 endif # WRITE_LIBVERSION |
265 endif # WRITE_LIBVERSION |
260 ifneq ($(PLATFORM), macosx) |
266 ifneq ($(PLATFORM), macosx) |
261 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
267 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
262 ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) |
268 ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1) |
|
269 ifeq ($(PLATFORM), solaris) |
|
270 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. |
|
271 # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from |
|
272 # empty section headers until a fixed $(OBJCOPY) is available. |
|
273 # An empty section header has sh_addr == 0 and sh_size == 0. |
|
274 # This problem has only been seen on Solaris X64, but we call this tool |
|
275 # on all Solaris builds just in case. |
|
276 # |
|
277 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. |
|
278 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. |
263 (set -e ; \ |
279 (set -e ; \ |
264 $(CD) $(@D) ; \ |
280 $(CD) $(@D) ; \ |
265 $(OBJCOPY) --only-keep-debug $(@F) $(LIBRARY).debuginfo ; \ |
281 $(FIX_EMPTY_SEC_HDR_FLAGS) $(@F) ; \ |
266 $(OBJCOPY) --add-gnu-debuglink=$(LIBRARY).debuginfo $(@F) ; \ |
282 $(OBJCOPY) --only-keep-debug $(@F) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \ |
|
283 $(ADD_GNU_DEBUGLINK) $(LIB_PREFIX)$(LIBRARY).debuginfo $(@F) ; \ |
267 ) |
284 ) |
|
285 else # PLATFORM != solaris |
|
286 (set -e ; \ |
|
287 $(CD) $(@D) ; \ |
|
288 $(OBJCOPY) --only-keep-debug $(@F) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \ |
|
289 $(OBJCOPY) --add-gnu-debuglink=$(LIB_PREFIX)$(LIBRARY).debuginfo $(@F) ; \ |
|
290 ) |
|
291 endif # PLATFORM == solaris |
268 ifeq ($(STRIP_POLICY),all_strip) |
292 ifeq ($(STRIP_POLICY),all_strip) |
269 $(STRIP) $@ |
293 $(STRIP) $@ |
270 else |
294 else |
271 ifeq ($(STRIP_POLICY),min_strip) |
295 ifeq ($(STRIP_POLICY),min_strip) |
272 ifeq ($(PLATFORM), solaris) |
296 ifeq ($(PLATFORM), solaris) |
279 endif |
303 endif |
280 endif |
304 endif |
281 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
305 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
282 (set -e ; \ |
306 (set -e ; \ |
283 $(CD) $(@D) ; \ |
307 $(CD) $(@D) ; \ |
284 $(ZIPEXE) -q $(LIBRARY).diz $(LIBRARY).debuginfo ; \ |
308 $(ZIPEXE) -q $(LIB_PREFIX)$(LIBRARY).diz $(LIB_PREFIX)$(LIBRARY).debuginfo ; \ |
285 $(RM) $(LIBRARY).debuginfo ; \ |
309 $(RM) $(LIB_PREFIX)$(LIBRARY).debuginfo ; \ |
286 ) |
310 ) |
287 endif |
311 endif |
288 endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS |
312 endif # LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS |
289 endif # ENABLE_FULL_DEBUG_SYMBOLS |
313 endif # ENABLE_FULL_DEBUG_SYMBOLS |
290 endif # PLATFORM-!macosx |
314 endif # PLATFORM-!macosx |