[haiku-commits] haiku: hrev47577 - build/jam

  • From: zooey@xxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 26 Jul 2014 19:18:29 +0200 (CEST)

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 ;
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev47577 - build/jam - zooey