hrev47580 adds 1 changeset to branch 'master' old head: ad3d3335df11c4460cd0cf159710003914572956 new head: 36f3164c3ec5f536550e443aeec4b0d58a8746b1 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=36f3164+%5Ead3d333 ---------------------------------------------------------------------------- 36f3164: Fix #11076 - build failing on Haiku. * Haiku does not currently provide crtbeginS.o and crtendS.o, so we fall back to crtbegin.o and crtend.o. This should not have any ill-effects, as the available compilers on Haiku do not use __cxa_atexit() yet. [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev47580 Commit: 36f3164c3ec5f536550e443aeec4b0d58a8746b1 URL: http://cgit.haiku-os.org/haiku/commit/?id=36f3164 Author: Oliver Tappe <zooey@xxxxxxxxxxxxxxx> Date: Sun Jul 27 14:00:53 2014 UTC Ticket: https://dev.haiku-os.org/ticket/11076 ---------------------------------------------------------------------------- 1 file changed, 29 insertions(+), 7 deletions(-) build/jam/ArchitectureRules | 36 +++++++++++++++++++++++++++++------- ---------------------------------------------------------------------------- diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index cf98620..f4e3427 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -206,6 +206,18 @@ rule ArchitectureSetup architecture } # library and executable glue code + local crtBegin ; + local crtEnd ; + # TODO: use crtbeginS.o and crtendS.o unconditionally once we have + # switched to new compiler packages + if [ Glob $(HAIKU_GCC_LIB_DIR_$(architecture)) : crtbeginS.o ] { + crtBegin = <$(architecture)>crtbeginS.o ; + crtEnd = <$(architecture)>crtendS.o ; + } else { + crtBegin = <$(architecture)>crtbegin.o ; + crtEnd = <$(architecture)>crtend.o ; + } + local commonGlueCode = <src!system!glue!$(architecture)>init_term_dyn.o <src!system!glue!arch!$(HAIKU_ARCH)!$(architecture)>crti.o @@ -213,24 +225,23 @@ rule ArchitectureSetup architecture ; HAIKU_LIBRARY_BEGIN_GLUE_CODE_$(architecture) = <src!system!glue!arch!$(HAIKU_ARCH)!$(architecture)>crti.o - <$(architecture)>crtbeginS.o + $(crtBegin) <src!system!glue!$(architecture)>init_term_dyn.o ; HAIKU_LIBRARY_END_GLUE_CODE_$(architecture) = - <$(architecture)>crtendS.o + $(crtEnd) <src!system!glue!arch!$(HAIKU_ARCH)!$(architecture)>crtn.o ; HAIKU_EXECUTABLE_BEGIN_GLUE_CODE_$(architecture) = <src!system!glue!arch!$(HAIKU_ARCH)!$(architecture)>crti.o - <$(architecture)>crtbeginS.o + $(crtBegin) <src!system!glue!$(architecture)>start_dyn.o <src!system!glue!$(architecture)>init_term_dyn.o ; HAIKU_EXECUTABLE_END_GLUE_CODE_$(architecture) = $(HAIKU_LIBRARY_END_GLUE_CODE_$(architecture)) ; - SEARCH on <$(architecture)>crtbeginS.o <$(architecture)>crtendS.o - = $(HAIKU_GCC_LIB_DIR_$(architecture)) ; + SEARCH on $(crtBegin) $(crtEnd) = $(HAIKU_GCC_LIB_DIR_$(architecture)) ; # init library name map local libraryGrist = "" ; @@ -472,10 +483,21 @@ rule KernelArchitectureSetup architecture # compiling (part of) the boot loader. # kernel add-on glue code - HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbeginS.o + local crtBegin ; + local crtEnd ; + # TODO: use crtbeginS.o and crtendS.o unconditionally once we have + # switched to new compiler packages + if [ Glob $(HAIKU_GCC_LIB_DIR_$(architecture)) : crtbeginS.o ] { + crtBegin = <$(architecture)>crtbeginS.o ; + crtEnd = <$(architecture)>crtendS.o ; + } else { + crtBegin = <$(architecture)>crtbegin.o ; + crtEnd = <$(architecture)>crtend.o ; + } + HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = $(crtBegin) <src!system!glue!$(architecture)>haiku_version_glue.o ; HAIKU_KERNEL_ADDON_END_GLUE_CODE - = $(HAIKU_GCC_LIBGCC_$(architecture)) <$(architecture)>crtendS.o ; + = $(HAIKU_GCC_LIBGCC_$(architecture)) $(crtEnd) ; }