hrev47577 adds 2 changesets to branch 'master' old head: f78313627450a8c919f7ddb70f79f9f0662ee661 new head: a36fd6667aaf019b382bca32db97c8354998bfe4 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=a36fd66+%5Ef783136 ---------------------------------------------------------------------------- 61eac7b: Drop unused variable HAIKU_GCC_GLUE_CODE_<target_arch> a36fd66: Use crtbeginS.o and crtendS.o everywhere. * Gcc is now using __cxa_atexit, so we need to use the crtbegin and crtend implementations that are meant to be used for shared libraries. This avoids crashes of servers that load add-ons (Media-Addon-Server and Print-Server) when shutting down Haiku. * As executable are shared on Haiku, we use crtbeginS.o and crtendS.o for those, too. * To simplify, we even use crtbeginS.o and crtendS.o in the kernel, but there they don't currently make a difference, as the respective initialization and cleanup functions are not being invoked by the kernel. [ Oliver Tappe <zooey@xxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- 2 files changed, 6 insertions(+), 7 deletions(-) build/jam/ArchitectureRules | 12 ++++++------ configure | 1 - ############################################################################ Commit: 61eac7b933af5ead006a5536a04ffd90d692bd2e URL: http://cgit.haiku-os.org/haiku/commit/?id=61eac7b Author: Oliver Tappe <zooey@xxxxxxxxxxxxxxx> Date: Sat Jul 26 12:58:25 2014 UTC Drop unused variable HAIKU_GCC_GLUE_CODE_<target_arch> ---------------------------------------------------------------------------- diff --git a/configure b/configure index 2d370e0..e40eb34 100755 --- a/configure +++ b/configure @@ -401,7 +401,6 @@ standard_gcc_settings() set_variable HAIKU_GCC_MACHINE_$targetArch $gccMachine set_variable HAIKU_GCC_LIB_DIR_$targetArch $gccdir set_variable HAIKU_GCC_LIBGCC_$targetArch $libgcc - set_variable HAIKU_GCC_GLUE_CODE_$targetArch "crtbegin.o crtend.o" set_variable HAIKU_GCC_HEADERS_DIR_$targetArch \ "${gccdir}/include ${gccdir}/include-fixed" set_variable HAIKU_STATIC_LIBSTDCXX_$targetArch "$staticLibStdCxx" ############################################################################ Revision: hrev47577 Commit: a36fd6667aaf019b382bca32db97c8354998bfe4 URL: http://cgit.haiku-os.org/haiku/commit/?id=a36fd66 Author: Oliver Tappe <zooey@xxxxxxxxxxxxxxx> Date: Sat Jul 26 12:59:47 2014 UTC Use crtbeginS.o and crtendS.o everywhere. * Gcc is now using __cxa_atexit, so we need to use the crtbegin and crtend implementations that are meant to be used for shared libraries. This avoids crashes of servers that load add-ons (Media-Addon-Server and Print-Server) when shutting down Haiku. * As executable are shared on Haiku, we use crtbeginS.o and crtendS.o for those, too. * To simplify, we even use crtbeginS.o and crtendS.o in the kernel, but there they don't currently make a difference, as the respective initialization and cleanup functions are not being invoked by the kernel. ---------------------------------------------------------------------------- diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules index 629d45f..cf98620 100644 --- a/build/jam/ArchitectureRules +++ b/build/jam/ArchitectureRules @@ -213,23 +213,23 @@ rule ArchitectureSetup architecture ; HAIKU_LIBRARY_BEGIN_GLUE_CODE_$(architecture) = <src!system!glue!arch!$(HAIKU_ARCH)!$(architecture)>crti.o - <$(architecture)>crtbegin.o + <$(architecture)>crtbeginS.o <src!system!glue!$(architecture)>init_term_dyn.o ; HAIKU_LIBRARY_END_GLUE_CODE_$(architecture) = - <$(architecture)>crtend.o + <$(architecture)>crtendS.o <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)>crtbegin.o + <$(architecture)>crtbeginS.o <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)>crtbegin.o <$(architecture)>crtend.o + SEARCH on <$(architecture)>crtbeginS.o <$(architecture)>crtendS.o = $(HAIKU_GCC_LIB_DIR_$(architecture)) ; # init library name map @@ -472,10 +472,10 @@ rule KernelArchitectureSetup architecture # compiling (part of) the boot loader. # kernel add-on glue code - HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbegin.o + HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbeginS.o <src!system!glue!$(architecture)>haiku_version_glue.o ; HAIKU_KERNEL_ADDON_END_GLUE_CODE - = $(HAIKU_GCC_LIBGCC_$(architecture)) <$(architecture)>crtend.o ; + = $(HAIKU_GCC_LIBGCC_$(architecture)) <$(architecture)>crtendS.o ; }