system/glue: Add arm64 glue

Change-Id: I578c0ac89e5d40f086d0b66d5711f2b78c6087e1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1840
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Alexander von Gluck IV
2019-09-09 13:13:56 +00:00
committed by Alex von Gluck IV
parent 051ee9d8fc
commit 194a45c6b4
3 changed files with 66 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
SubDir HAIKU_TOP src system glue arch arm64 ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup arm64 ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
UsePrivateSystemHeaders ;
local sources =
crti.S
crtn.S
;
MergeObject <$(architecture)>glue_arch_$(TARGET_ARCH).o : $(sources) ;
if $(HAIKU_BUILD_TYPE) = bootstrap {
# build a version for stage0 of the bootstrap process
BootstrapStage0PlatformObjects [ FGristFiles $(sources) ] : true ;
}
}
}
+28
View File
@@ -0,0 +1,28 @@
/*
* Copyright 2005, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
/** This file contains the first part of the ".init" and ".fini" sections in
* the ELF executable.
* The functions defined here will be called during initialization/termination
* of the loaded executable/library. The ".init" and ".fini" sections are
* stacked together like this:
*
* crti.S entry point
* call to _init_before/_term_before
* crtbegin.S GCC specific: constructors/destructors are called, ...
* crtend.S
* crtn.S call to _init_after/_term_after
* exit
*/
#define FUNCTION(x) .global x; .type x,%function; x
.section .init
FUNCTION(_init):
// crtbegin.o stuff comes here
.section .fini
FUNCTION(_fini):
// crtbegin.o stuff comes here
+17
View File
@@ -0,0 +1,17 @@
/*
* Copyright 2005, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
/** This file contains the final part of the ".init" and ".fini" sections in
* the ELF executable. It is tightly connected to crti.S.
* Have a look at crti.S to find a description of what happens here.
*/
.section .init
// the image ID and program args are still on the stack
.section .fini
// the image ID and program args are still on the stack