Ticket #6310: buildsystem.patch
File buildsystem.patch, 42.3 KB (added by , 13 years ago) |
---|
-
build/jam/BootloaderRules
1 2 rule SetupBoot 3 { 4 # Usage SetupBoot <sources_or_objects> : <extra_cc_flags> : <include_private_headers> ; 5 # 6 # <sources_or_objects> - Ideally sources, otherwise HDRSEARCH can not be 7 # set for the sources and the sources some header 8 # dependencies might be missing. 9 10 local sources = [ FGristFiles $(1) ] ; 11 local objects = $(sources:S=$(SUFOBJ)) ; 12 13 # add private kernel headers 14 if $(3) != false { 15 SourceSysHdrs $(sources) : $(TARGET_PRIVATE_KERNEL_HEADERS) ; 16 } 17 18 local object ; 19 for object in $(objects) { 20 # add kernel flags for the object 21 22 ObjectCcFlags $(object) : $(TARGET_BOOT_CCFLAGS) $(2) ; 23 ObjectC++Flags $(object) : $(TARGET_BOOT_C++FLAGS) $(2) ; 24 ObjectDefines $(object) : $(TARGET_KERNEL_DEFINES) ; 25 26 # override warning flags 27 TARGET_WARNING_CCFLAGS on $(object) = $(TARGET_KERNEL_WARNING_CCFLAGS) ; 28 TARGET_WARNING_C++FLAGS on $(object) 29 = $(TARGET_KERNEL_WARNING_C++FLAGS) ; 30 } 31 } 32 33 rule BootObjects 34 { 35 SetupBoot $(1) : $(2) ; 36 Objects $(1) ; 37 } 38 39 rule BootLd 40 { 41 # KernelLd <name> : <objs> : <linkerscript> : <args> ; 42 43 LINK on $(1) = $(TARGET_LD) ; 44 45 LINKFLAGS on $(1) = $(4) ; 46 if $(3) { LINKFLAGS on $(1) += --script=$(3) ; } 47 48 LINKFLAGS on $(1) += $(TARGET_BOOT_LINKFLAGS) ; 49 50 # Remove any preset LINKLIBS, but link against libgcc.a 51 # TODO: In configure and buildsetup add code to setup a TARGET_STATIC_LEGACY_LIBSUP++ varible 52 if $(HAIKU_ARCH) = x86_64 { 53 LINKLIBS on $(1) = generated/cross-tools/x86_64-pc-haiku/lib/legacy/libsupc++.a $(TARGET_GCC_LEGACY_LIBGCC) ; 54 } 55 else 56 { 57 LINKLIBS on $(1) = $(TARGET_STATIC_LIBSUPC++) $(TARGET_GCC_LIBGCC) ; 58 } 59 60 # TODO: Do we really want to invoke SetupKernel here? The objects should 61 # have been compiled with KernelObjects anyway, so we're doing that twice. 62 SetupBoot $(2) ; 63 64 # Show that we depend on the libraries we need 65 LocalClean clean : $(1) ; 66 LocalDepends all : $(1) ; 67 Depends $(1) : $(2) ; 68 69 MakeLocateDebug $(1) ; 70 71 on $(1) XRes $(1) : $(RESFILES) ; 72 if ! [ on $(1) return $(DONT_USE_BEOS_RULES) ] { 73 SetType $(1) ; 74 MimeSet $(1) ; 75 SetVersion $(1) ; 76 } 77 } 78 79 actions BootLd bind VERSION_SCRIPT 80 { 81 $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) \ 82 --version-script=$(VERSION_SCRIPT) 83 } 84 85 rule BootMergeObject 86 { 87 # BootMergeObject <name> : <sources> : <extra CFLAGS> : <other objects> ; 88 # Compiles source files and merges the object files to an object file. 89 # <name>: Name of the object file to create. No grist will be added. 90 # <sources>: Sources to be compiled. Grist will be added. 91 # <extra CFLAGS>: Additional flags for compilation. 92 # <other objects>: Object files or static libraries to be merged. No grist 93 # will be added. 94 # 95 96 SetupBoot $(2) : $(3) ; 97 Objects $(2) ; 98 MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) : $(4) ; 99 } 100 101 rule BootStaticLibrary 102 { 103 # Usage BootStaticLibrary <name> : <sources> : <extra cc flags> ; 104 # This is designed to take a set of sources and libraries and create 105 # a file called lib<name>.a 106 107 SetupBoot $(2) : $(3) : false ; 108 Library $(1) : $(2) ; 109 } 110 111 rule BootStaticLibraryObjects 112 { 113 # Usage BootStaticLibrary <name> : <sources> ; 114 # This is designed to take a set of sources and libraries and create 115 # a file called <name> 116 117 # Show that we depend on the libraries we need 118 SetupBoot $(2) ; 119 LocalClean clean : $(1) ; 120 LocalDepends all : $(1) ; 121 Depends $(1) : $(2) ; 122 123 MakeLocateDebug $(1) ; 124 } 125 126 actions BootStaticLibraryObjects 127 { 128 # Force recreation of the archive to avoid build errors caused by 129 # stale dependencies after renaming or deleting object files. 130 $(RM) "$(1)" 131 $(HAIKU_AR) -r "$(1)" "$(2)" ; 132 } -
build/jam/MainBuildRules
363 363 } else { 364 364 LINK on $(1) = $(TARGET_LD) ; 365 365 LINKFLAGS on $(target) = $(TARGET_LDFLAGS) ; 366 if $(DEFINES) = _BOOT_MODE { 367 LINKFLAGS on $(1) += $(TARGET_BOOT_LINKFLAGS) ; 368 } 366 369 } 367 370 } 368 371 -
build/jam/BuildSetup
162 162 HAIKU_C++ ?= $(HAIKU_CC) ; 163 163 HAIKU_LINK = $(HAIKU_CC) ; 164 164 HAIKU_LINKFLAGS = $(HAIKU_GCC_BASE_FLAGS) ; 165 HAIKU_BOOT_LINKFLAGS = ; 165 166 166 167 HAIKU_HDRS = [ FStandardHeaders ] ; 167 168 HAIKU_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) -nostdinc ; 168 169 HAIKU_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) -nostdinc ; 169 170 HAIKU_KERNEL_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) ; 170 171 HAIKU_KERNEL_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) ; 172 HAIKU_BOOT_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) ; 173 HAIKU_BOOT_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) ; 171 174 HAIKU_DEFINES = __HAIKU__ ; 172 175 HAIKU_NO_WERROR ?= 0 ; 173 176 … … 252 255 } 253 256 case x86_64 : 254 257 { 255 HAIKU_DEFINES += __x86_64__ ;256 258 HAIKU_BOOT_PLATFORM = bios_ia32 ; 257 259 HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB 258 260 # offset in floppy image (>= sizeof(haiku_loader)) 259 261 HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB 262 HAIKU_NO_WERROR = 1 ; 260 263 261 264 # yasm is required for target arch x86_64 262 265 if ! $(HAIKU_YASM) { … … 314 317 # C/C++ flags 315 318 HAIKU_KERNEL_CCFLAGS += -finline -fno-builtin ; 316 319 HAIKU_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions ; 320 HAIKU_BOOT_CCFLAGS += -finline -fno-builtin ; 321 HAIKU_BOOT_C++FLAGS += -finline -fno-builtin -fno-exceptions ; 317 322 HAIKU_KERNEL_DEFINES += _KERNEL_MODE ; 318 323 319 324 if $(HAIKU_GCC_VERSION[1]) >= 3 { … … 341 346 HAIKU_KERNEL_PIC_CCFLAGS = -fPIE ; 342 347 HAIKU_KERNEL_PIC_LINKFLAGS = -shared -fPIE ; 343 348 } 344 345 349 case m68k : 346 350 { 347 351 # We don't want to have to handle emulating missing FPU opcodes for 040 … … 363 367 } 364 368 case x86_64 : 365 369 { 370 HAIKU_KERNEL_PIC_LINKFLAGS += -z max-page-size=0x1000 ; 371 372 HAIKU_KERNEL_CCFLAGS += -mcmodel=large ; 373 HAIKU_KERNEL_C++FLAGS += -mcmodel=large ; 374 375 HAIKU_BOOT_LINKFLAGS += -m elf_i386_haiku ; 376 HAIKU_BOOT_CCFLAGS += -m32 ; 377 HAIKU_BOOT_C++FLAGS += -m32 ; 378 366 379 # Enable use of the gcc built-in atomic functions instead of atomic_*(). 367 380 # The former are inlined and have thus less overhead. 368 381 HAIKU_DEFINES += B_USE_BUILTIN_ATOMIC_FUNCTIONS ; … … 917 930 KERNEL_DEFINES 918 931 919 932 KERNEL_CCFLAGS KERNEL_C++FLAGS 933 BOOT_CCFLAGS BOOT_C++FLAGS BOOT_LINKFLAGS 920 934 KERNEL_PIC_CCFLAGS KERNEL_PIC_LINKFLAGS 921 935 WARNING_CCFLAGS WARNING_C++FLAGS 922 936 … … 933 947 PRIVATE_SYSTEM_HEADERS 934 948 935 949 LIBSTDC++ LIBSUPC++ 936 STATIC_LIBSTDC++ STATIC_LIBSUPC++ 950 STATIC_LIBSTDC++ STATIC_LIBSUPC++ STATIC_LEGACY_LIBSUPC++ 937 951 938 952 NETWORK_LIBS NETAPI_LIB SELECT_UNAME_ETC_LIB 939 953 … … 952 966 TARGET_GCC_LIB_DIR = $(HAIKU_GCC_LIB_DIR) ; 953 967 TARGET_GCC_HEADERS_DIR = $(HAIKU_GCC_HEADERS_DIR) ; 954 968 TARGET_GCC_LIBGCC = $(HAIKU_GCC_LIBGCC) ; 969 TARGET_GCC_LEGACY_LIBGCC = $(HAIKU_GCC_LEGACY_LIBGCC) ; 955 970 TARGET_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS) ; 956 971 957 972 TARGET_BOOT_PLATFORM ?= $(HAIKU_BOOT_PLATFORM) ; … … 968 983 TARGET_GCC_LIB_DIR = ; 969 984 TARGET_GCC_HEADERS_DIR = ; 970 985 TARGET_GCC_LIBGCC = ; 986 TARGET_GCC_LEGACY_LIBGCC = ; 971 987 TARGET_GCC_LIBGCC_OBJECTS = ; 972 988 973 989 TARGET_BOOT_PLATFORM = ; -
build/jam/OverriddenJamRules
178 178 local includesSeparator ; 179 179 local localIncludesOption ; 180 180 local systemIncludesOption ; 181 182 if $(DEFINES) = _BOOT_MODE { 183 flags = $(TARGET_BOOT_CCFLAGS) ; 184 } 185 181 186 if [ on $(1) return $(PLATFORM) ] = host { 182 flags = [ on $(1) return $(HOST_ASFLAGS) $(ASFLAGS) ] ;187 flags += [ on $(1) return $(HOST_ASFLAGS) $(ASFLAGS) ] ; 183 188 184 189 CC on $(1) = $(HOST_CC) ; 185 190 … … 188 193 systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ; 189 194 190 195 } else { 191 flags = [ on $(1) return $(TARGET_ASFLAGS) $(ASFLAGS) ] ;196 flags += [ on $(1) return $(TARGET_ASFLAGS) $(ASFLAGS) ] ; 192 197 193 198 CC on $(1) = $(TARGET_CC) ; 194 199 -
configure
161 161 162 162 HAIKU_GCC_LIB_DIR=${gccdir} 163 163 HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a 164 HAIKU_GCC_LEGACY_LIBGCC=${gccdir}/legacy/libgcc.a 164 165 HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o" 165 166 HAIKU_GCC_HEADERS_DIR="${gccdir}/include 166 167 ${gccdir}/include-fixed" … … 554 555 HAIKU_GCC_LIB_DIR ?= ${HAIKU_GCC_LIB_DIR} ; 555 556 HAIKU_GCC_HEADERS_DIR ?= ${HAIKU_GCC_HEADERS_DIR} ; 556 557 HAIKU_GCC_LIBGCC ?= ${HAIKU_GCC_LIBGCC} ; 558 HAIKU_GCC_LEGACY_LIBGCC ?= ${HAIKU_GCC_LEGACY_LIBGCC} ; 557 559 558 560 HAIKU_STATIC_LIBSTDC++ ?= ${HAIKU_STATIC_LIBSTDCXX} ; 559 561 HAIKU_SHARED_LIBSTDC++ ?= ${HAIKU_SHARED_LIBSTDCXX} ; -
Jamrules
42 42 include [ FDirName $(HAIKU_BUILD_RULES_DIR) FreetypeRules ] ; 43 43 include [ FDirName $(HAIKU_BUILD_RULES_DIR) HeadersRules ] ; 44 44 include [ FDirName $(HAIKU_BUILD_RULES_DIR) KernelRules ] ; 45 include [ FDirName $(HAIKU_BUILD_RULES_DIR) BootloaderRules ] ; 45 46 include [ FDirName $(HAIKU_BUILD_RULES_DIR) ImageRules ] ; 46 47 include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDRules ] ; 47 48 include [ FDirName $(HAIKU_BUILD_RULES_DIR) MainBuildRules ] ; -
src/system/kernel/lib/arch/x86_64/Jamfile
1 SubDir HAIKU_TOP src system kernel lib arch x86_64 ; 2 3 # find the generated asm_offsets.h 4 SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) system kernel arch 5 $(TARGET_ARCH) ] ; 6 7 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; 8 9 local librootSources = [ FDirName $(HAIKU_TOP) src system libroot ] ; 10 local posixSources = [ FDirName $(librootSources) posix ] ; 11 12 SEARCH_SOURCE += [ FDirName $(librootSources) os arch $(TARGET_ARCH) ] ; 13 14 KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : 15 atomic.S 16 byteorder.S 17 system_time_asm.S 18 system_time.c 19 20 : $(TARGET_KERNEL_PIC_CCFLAGS) 21 ; 22 23 SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; 24 SEARCH_SOURCE += [ FDirName $(posixSources) string arch generic ] ; 25 26 KernelMergeObject kernel_lib_posix_arch_$(TARGET_ARCH).o : 27 siglongjmp.S 28 sigsetjmp.S 29 kernel_longjmp_return.c 30 kernel_setjmp_save_sigs.c 31 32 arch_string.S 33 34 : $(TARGET_KERNEL_PIC_CCFLAGS) 35 ; 36 37 # Explicitly tell the build system that arch_string.S includes the generated 38 # asm_offsets.h. 39 Includes [ FGristFiles arch_string.S ] 40 : <src!system!kernel!arch!x86_64>asm_offsets.h ; -
src/system/kernel/arch/x86_64/Jamfile
1 SubDir HAIKU_TOP src system kernel arch x86_64 ; 2 3 SubDirHdrs $(SUBDIR) $(DOTDOT) generic ; 4 UsePrivateKernelHeaders ; 5 6 7 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; 8 SEARCH_SOURCE += [ FDirName $(SUBDIR) timers ] ; 9 10 11 local x86_kernel_arch_sources = 12 arch_real_time_clock.cpp 13 ; 14 15 16 local x86_64_paging_sources = 17 X86_64PagingMethod.cpp 18 X86_64PagingStructures.cpp 19 X86_64VMTranslationMap.cpp 20 21 x86_64_physical_page_mapper.cpp 22 x86_64_physical_page_mapper_large_memory.cpp 23 ; 24 25 26 KernelMergeObject kernel_arch_x86_64.o : 27 entry.S 28 arch_x86_64.S 29 arch_interrupts.S 30 cpuid.S 31 asm_offsets.cpp 32 33 apic.cpp 34 35 arch_commpage.cpp 36 arch_cpu.cpp 37 arch_debug_console.cpp 38 arch_debug.cpp 39 arch_elf.cpp 40 arch_int.cpp 41 arch_platform.cpp 42 arch_smp.cpp 43 arch_system_info.cpp 44 arch_thread.cpp 45 arch_timer.cpp 46 arch_user_debugger.cpp 47 arch_vm.cpp 48 arch_vm_translation_map.cpp 49 50 $(x86_kernel_arch_sources) 51 52 # timers 53 x86_64_apic.cpp 54 x86_64_hpet.cpp 55 x86_64_pit.cpp 56 57 # system paging 58 $(x86_64_paging_sources) 59 60 : 61 $(TARGET_KERNEL_PIC_CCFLAGS) 62 : 63 64 ; 65 66 CreateAsmStructOffsetsHeader asm_offsets.h : asm_offsets.cpp ; 67 68 SEARCH on [ FGristFiles $(x86_kernel_arch_sources) ] 69 = [ FDirName $(SUBDIR) $(DOTDOT) x86 ] ; 70 71 SEARCH on [ FGristFiles $(x86_64_paging_sources) ] 72 = [ FDirName $(SUBDIR) paging ] ; -
src/system/boot/platform/routerboard_mipsel/Jamfile
24 24 # video_rle.cpp 25 25 ; 26 26 27 KernelMergeObject boot_platform_routerboard_mipsel.o :27 BootMergeObject boot_platform_routerboard_mipsel.o : 28 28 console.cpp 29 29 cpu.cpp 30 30 debug.c -
src/system/boot/platform/amiga_m68k/Jamfile
19 19 20 20 #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ; 21 21 22 KernelMergeObject boot_platform_amiga_m68k_shell.o :22 BootMergeObject boot_platform_amiga_m68k_shell.o : 23 23 shell.S 24 24 : -Wa,--pcrel 25 25 ; … … 27 27 # cpu-specific stuff 28 28 # should be moved to boot/arch/m68k/... 29 29 # XXX: add 020+68851 support 30 KernelMergeObject boot_arch_m68k_030.o :30 BootMergeObject boot_arch_m68k_030.o : 31 31 mmu_030.cpp 32 32 : -fno-pic -Wno-unused -m68030 33 33 ; 34 34 35 KernelMergeObject boot_arch_m68k_040.o :35 BootMergeObject boot_arch_m68k_040.o : 36 36 mmu_040.cpp 37 37 : -fno-pic -Wno-unused -m68040 38 38 ; 39 39 40 KernelMergeObject boot_arch_m68k_060.o :40 BootMergeObject boot_arch_m68k_060.o : 41 41 mmu_060.cpp 42 42 : -fno-pic -Wno-unused -m68060 43 43 ; 44 44 45 45 46 KernelMergeObject boot_platform_amiga_m68k_other.o :46 BootMergeObject boot_platform_amiga_m68k_other.o : 47 47 # shell.S 48 48 start.c 49 49 toscalls.c … … 73 73 : -fno-pic #-Wa,--pcrel 74 74 ; 75 75 76 KernelMergeObject boot_platform_amiga_m68k.o :76 BootMergeObject boot_platform_amiga_m68k.o : 77 77 : : 78 78 boot_platform_amiga_m68k_shell.o 79 79 boot_platform_amiga_m68k_other.o -
src/system/boot/platform/atari_m68k/Jamfile
19 19 20 20 #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ; 21 21 22 KernelMergeObject boot_platform_atari_m68k_shell.o :22 BootMergeObject boot_platform_atari_m68k_shell.o : 23 23 shell.S 24 24 : -Wa,--pcrel 25 25 ; … … 27 27 # cpu-specific stuff 28 28 # should be moved to boot/arch/m68k/... 29 29 # TODO: add 020+68851 support 30 KernelMergeObject boot_arch_m68k_030.o :30 BootMergeObject boot_arch_m68k_030.o : 31 31 mmu_030.cpp 32 32 : -fno-pic -Wno-unused -m68030 33 33 ; 34 34 35 KernelMergeObject boot_arch_m68k_040.o :35 BootMergeObject boot_arch_m68k_040.o : 36 36 mmu_040.cpp 37 37 : -fno-pic -Wno-unused -m68040 38 38 ; 39 39 40 KernelMergeObject boot_arch_m68k_060.o :40 BootMergeObject boot_arch_m68k_060.o : 41 41 mmu_060.cpp 42 42 : -fno-pic -Wno-unused -m68060 43 43 ; 44 44 45 45 46 KernelMergeObject boot_platform_atari_m68k_other.o :46 BootMergeObject boot_platform_atari_m68k_other.o : 47 47 # shell.S 48 48 start.cpp 49 49 toscalls.cpp … … 73 73 : -fno-pic #-Wa,--pcrel 74 74 ; 75 75 76 KernelMergeObject boot_platform_atari_m68k.o :76 BootMergeObject boot_platform_atari_m68k.o : 77 77 : : 78 78 boot_platform_atari_m68k_shell.o 79 79 boot_platform_atari_m68k_other.o -
src/system/boot/platform/u-boot/Jamfile
34 34 video_rle.cpp 35 35 ; 36 36 37 KernelMergeObject boot_platform_u-boot.o :37 BootMergeObject boot_platform_u-boot.o : 38 38 shell.S 39 39 start2.cpp 40 40 debug.cpp -
src/system/boot/platform/bios_ia32/Jamfile
1 1 SubDir HAIKU_TOP src system boot platform bios_ia32 ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform $(TARGET_BOOT_PLATFORM) ; 4 6 5 7 UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; … … 24 26 video_rle.cpp 25 27 ; 26 28 27 KernelMergeObject boot_platform_bios_ia32.o :29 BootMergeObject boot_platform_bios_ia32.o : 28 30 shell.S 29 31 start.cpp 30 32 debug.cpp … … 44 46 video.cpp 45 47 apm.cpp 46 48 hpet.cpp 49 long.cpp 47 50 48 51 $(genericPlatformSources) 49 52 -
src/system/boot/platform/pxe_ia32/Jamfile
49 49 ; 50 50 51 51 52 KernelMergeObject boot_platform_pxe_ia32.o :52 BootMergeObject boot_platform_pxe_ia32.o : 53 53 pxe_stage2.S 54 54 smp_trampoline.S 55 55 pxe_bios.S -
src/system/boot/platform/openfirmware/Jamfile
2 2 3 3 SubDirC++Flags -D_BOOT_MODE -fno-rtti ; 4 4 5 KernelMergeObject boot_platform_openfirmware.o :5 BootMergeObject boot_platform_openfirmware.o : 6 6 console.cpp 7 7 debug.cpp 8 8 devices.cpp -
src/system/boot/platform/openfirmware/arch/ppc/Jamfile
7 7 8 8 SubDirC++Flags -fno-rtti ; 9 9 10 KernelStaticLibrary boot_platform_openfirmware_ppc :10 BootStaticLibrary boot_platform_openfirmware_ppc : 11 11 arch_mmu.cpp 12 12 arch_cpu_asm.S 13 13 arch_start_kernel.S -
src/system/boot/loader/net/Jamfile
4 4 5 5 SubDirC++Flags -fno-rtti ; 6 6 7 KernelStaticLibrary boot_net :7 BootStaticLibrary boot_net : 8 8 ARP.cpp 9 9 ChainBuffer.cpp 10 10 Ethernet.cpp -
src/system/boot/loader/file_systems/tarfs/Jamfile
1 1 SubDir HAIKU_TOP src system boot loader file_systems tarfs ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 UseHeaders [ FDirName $(HAIKU_TOP) headers libs zlib ] ; 4 6 5 7 UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ; … … 14 16 SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src libs zlib ] ; 15 17 16 18 17 KernelStaticLibrary boot_zlib :19 BootStaticLibrary boot_zlib : 18 20 inflate.c 19 21 inffast.c 20 22 inftrees.c … … 25 27 ; 26 28 27 29 28 KernelStaticLibrary boot_tarfs :30 BootStaticLibrary boot_tarfs : 29 31 tarfs.cpp 30 32 : -fno-pic 31 33 ; -
src/system/boot/loader/file_systems/hfs_plus/Jamfile
1 1 SubDir HAIKU_TOP src system boot loader file_systems hfs_plus ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ; 4 6 UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; 5 7 UsePrivateHeaders kernel storage ; 6 8 9 local defines = [ FDefines _BOOT_MODE ] ; 7 10 SubDirC++Flags -fno-rtti ; 8 11 9 KernelStaticLibrary boot_hfs_plus :12 BootStaticLibrary boot_hfs_plus : 10 13 hfs_plus.cpp 11 14 : -fno-pic 12 15 ; -
src/system/boot/loader/file_systems/bfs/Jamfile
1 1 SubDir HAIKU_TOP src system boot loader file_systems bfs ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 UsePrivateKernelHeaders ; 4 6 UsePrivateHeaders shared storage ; 5 7 … … 10 12 SubDirCcFlags $(defines) ; 11 13 SubDirC++Flags -fno-rtti $(defines) ; 12 14 13 KernelStaticLibrary boot_bfs :15 BootStaticLibrary boot_bfs : 14 16 bfs.cpp 15 17 Directory.cpp 16 18 File.cpp -
src/system/boot/loader/file_systems/fat/Jamfile
1 1 SubDir HAIKU_TOP src system boot loader file_systems fat ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 #UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ; 4 6 #UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; 5 7 #UsePrivateHeaders [ FDirName storage ] ; … … 13 15 SubDirCcFlags $(defines) ; 14 16 SubDirC++Flags -fno-rtti $(defines) ; 15 17 16 KernelStaticLibrary boot_fatfs :18 BootStaticLibrary boot_fatfs : 17 19 fatfs.cpp 18 20 Volume.cpp 19 21 CachedBlock.cpp -
src/system/boot/loader/file_systems/amiga_ffs/Jamfile
6 6 7 7 #SubDirHdrs $(HAIKU_TOP) src add-ons kernel file_systems amiga_ffs ; 8 8 9 DEFINES += _BOOT_MODE ; 10 9 11 SubDirC++Flags -fno-rtti ; 10 12 11 KernelStaticLibrary boot_amiga_ffs :13 BootStaticLibrary boot_amiga_ffs : 12 14 amiga_ffs.cpp 13 15 Volume.cpp 14 16 Directory.cpp -
src/system/boot/loader/Jamfile
1 1 SubDir HAIKU_TOP src system boot loader ; 2 2 3 DEFINES += _BOOT_MODE ; 4 3 5 SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems amiga ; 4 6 SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems apple ; 5 7 SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems efi ; … … 43 45 #BOOT_SUPPORT_FILE_SYSTEM_FAT 44 46 ; 45 47 } 48 case "x86_64" : 49 { 50 defines += 51 BOOT_SUPPORT_PARTITION_EFI 52 53 #BOOT_SUPPORT_FILE_SYSTEM_FAT 54 ; 55 } 46 56 } 47 57 48 58 defines = [ FDefines $(defines) ] ; … … 50 60 SubDirC++Flags $(defines) -Wall -Wno-multichar -fno-rtti ; 51 61 } 52 62 53 KernelStaticLibrary boot_loader :63 BootStaticLibrary boot_loader : 54 64 elf.cpp 55 65 heap.cpp 56 66 kernel_args.cpp … … 81 91 # The partition support is built in an extra static library 82 92 # so that only the ones that are used will be included. 83 93 84 KernelStaticLibrary boot_partitions :94 BootStaticLibrary boot_partitions : 85 95 FileMapDisk.cpp 86 96 amiga_rdb.cpp 87 97 apple.cpp -
src/system/boot/Jamfile
1 1 SubDir HAIKU_TOP src system boot ; 2 2 3 local librootFunctions = 4 abs.o 5 ctype.o 6 LocaleData.o 7 qsort.o 8 kernel_vsprintf.o 9 memcmp.o 10 memmove.o 11 strdup.o 12 strlen.o 13 strnlen.o 14 strcmp.o 15 strcasecmp.o 16 strncmp.o 17 strcat.o 18 strcpy.o 19 strlcat.o 20 strlcpy.o 21 strchr.o 22 strrchr.o 23 strtol.o 3 DEFINES += _BOOT_MODE ; 4 5 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) libroot posix string ] ; 6 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) libroot posix stdlib ] ; 7 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) libroot posix locale ] ; 8 SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) kernel lib ] ; 9 10 BootMergeObject boot_librootFunctions.o : 11 abs.c 12 ctype.cpp 13 LocaleData.cpp 14 qsort.c 15 kernel_vsprintf.cpp 16 memcmp.c 17 memmove.c 18 strdup.c 19 strlen.c 20 strnlen.c 21 strcmp.c 22 strcasecmp.c 23 strncmp.c 24 strcat.c 25 strcpy.c 26 strlcat.c 27 strlcpy.c 28 strchr.c 29 strrchr.c 30 strtol.c 31 : -fno-pic 24 32 ; 25 33 26 34 local extraLinkerArgs = ; … … 30 38 31 39 AddResources haiku_loader : boot_loader.rdef ; 32 40 33 KernelLd boot_loader_$(TARGET_BOOT_PLATFORM) :41 BootLd boot_loader_$(TARGET_BOOT_PLATFORM) : 34 42 boot_platform_$(TARGET_BOOT_PLATFORM).o 35 43 boot_arch_$(TARGET_ARCH).o 36 44 boot_loader.a … … 48 56 49 57 # libroot functions needed by the stage2 boot loader (compiled for the 50 58 # kernel) 51 $(librootFunctions:G=src!system!kernel!lib)59 boot_librootFunctions.o 52 60 53 61 : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_loader_$(TARGET_BOOT_PLATFORM).ld 54 62 : -Bstatic $(extraLinkerArgs) 55 63 ; 56 64 65 66 57 67 rule BuildCoffLoader { 58 68 local coffLoader = $(1) ; 59 69 local bootLoader = $(2) ; -
src/system/boot/arch/arm/Jamfile
15 15 <src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o 16 16 ; 17 17 18 KernelMergeObject boot_arch_$(TARGET_ARCH).o :18 BootMergeObject boot_arch_$(TARGET_ARCH).o : 19 19 uart.cpp 20 20 arch_elf.cpp 21 21 arch_video.cpp -
src/system/boot/arch/ppc/Jamfile
8 8 <src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o 9 9 ; 10 10 11 KernelMergeObject boot_arch_$(TARGET_ARCH).o :11 BootMergeObject boot_arch_$(TARGET_ARCH).o : 12 12 arch_elf.cpp 13 13 : # additional flags 14 14 : -
src/system/boot/arch/m68k/Jamfile
13 13 <src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o 14 14 ; 15 15 16 KernelMergeObject boot_arch_$(TARGET_ARCH).o :16 BootMergeObject boot_arch_$(TARGET_ARCH).o : 17 17 arch_elf.cpp 18 18 $(librootArchObjects) 19 19 : -fno-pic -
src/system/boot/arch/x86/Jamfile
18 18 <src!system!kernel!lib!arch!$(TARGET_ARCH)>byteorder.o 19 19 ; 20 20 21 KernelMergeObject boot_arch_$(TARGET_ARCH).o :21 BootMergeObject boot_arch_$(TARGET_ARCH).o : 22 22 $(kernelArchSources) 23 23 $(kernelLibArchSources) 24 24 : # additional flags -
src/system/boot/arch/mipsel/Jamfile
8 8 <src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o 9 9 ; 10 10 11 KernelMergeObject boot_arch_$(TARGET_ARCH).o :11 BootMergeObject boot_arch_$(TARGET_ARCH).o : 12 12 arch_elf.cpp 13 13 : # additional flags 14 14 : -
src/system/boot/arch/x86_64/Jamfile
1 SubDir HAIKU_TOP src system boot arch x86_64 ; 2 3 DEFINES += _BOOT_MODE ; 4 5 local kernelArchSources = 6 arch_elf.cpp 7 cpuid.S 8 ; 9 10 local kernelLibArchSources = 11 arch_string.S 12 ; 13 14 local librootosArchObjects = 15 byteorder.S 16 ; 17 18 BootMergeObject boot_arch_$(TARGET_ARCH).o : 19 $(kernelArchSourcesCPP) 20 $(kernelArchSources) 21 $(kernelLibArchSources) 22 $(librootosArchObjects) 23 : # additional flags 24 ; 25 26 SEARCH on [ FGristFiles $(kernelArchSources) ] 27 = [ FDirName $(HAIKU_TOP) src system kernel arch x86 ] ; 28 SEARCH on [ FGristFiles $(kernelLibArchSources) ] 29 = [ FDirName $(HAIKU_TOP) src system kernel lib arch x86 ] ; 30 SEARCH on [ FGristFiles $(librootosArchObjects) ] 31 = [ FDirName $(HAIKU_TOP) src system libroot os arch x86 ] ; 32 -
src/system/glue/arch/x86_64/Jamfile
1 SubDir HAIKU_TOP src system glue arch x86_64 ; 2 3 KernelObjects 4 crti.S 5 crtn.S 6 ; 7 -
headers/build/config_build/HaikuConfig.h
17 17 __HAIKU_BIG_ENDIAN - defined to 1 on big endian architectures 18 18 (defaults to undefined) 19 19 */ 20 #ifdef __INTEL__ 21 # define __HAIKU_ARCH x86 22 # define __HAIKU_ARCH_X86 1 23 #elif __x86_64__ 20 #ifdef __x86_64__ 24 21 # define __HAIKU_ARCH x86_64 25 22 # define __HAIKU_ARCH_X86_64 1 26 23 # define __HAIKU_ARCH_BITS 64 24 #elif __INTEL__ 25 # define __HAIKU_ARCH x86 26 # define __HAIKU_ARCH_X86 1 27 27 #elif __POWERPC__ 28 28 # define __HAIKU_ARCH ppc 29 29 # define __HAIKU_ARCH_PPC 1 -
headers/os/kernel/OS.h
410 410 411 411 /* System information */ 412 412 413 #if __INTEL__ 413 #if __x86_64__ 414 # define B_MAX_CPU_COUNT 1 415 #elif __INTEL__ 414 416 # define B_MAX_CPU_COUNT 8 415 417 #elif __POWERPC__ 416 418 # define B_MAX_CPU_COUNT 8 -
headers/config/HaikuConfig.h
17 17 __HAIKU_BIG_ENDIAN - defined to 1 on big endian architectures 18 18 (defaults to undefined) 19 19 */ 20 #ifdef __INTEL__ 20 #ifdef __x86_64__ 21 # define __HAIKU_ARCH x86_64 22 # define __HAIKU_ARCH_X86_64 1 23 # define __HAIKU_ARCH_BITS 64 24 #elif __INTEL__ 21 25 # define __HAIKU_ARCH x86 22 26 # define __HAIKU_ARCH_X86 1 23 27 # define __HAIKU_ARCH_PHYSICAL_BITS 64 24 #elif __x86_64__25 # define __HAIKU_ARCH x86_6426 # define __HAIKU_ARCH_X86_64 127 # define __HAIKU_ARCH_BITS 6428 28 #elif __POWERPC__ 29 29 # define __HAIKU_ARCH ppc 30 30 # define __HAIKU_ARCH_PPC 1 -
src/system/ldscripts/x86_64/add-on.ld
1 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 2 OUTPUT_ARCH(i386:x86-64) 3 4 ENTRY(_start) 5 SEARCH_DIR("libgcc"); 6 SECTIONS 7 { 8 . = 0x00000000 + SIZEOF_HEADERS; 9 10 .interp : { *(.interp) } 11 .hash : { *(.hash) } 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } 15 .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } 16 .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } 17 .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) } 18 .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 19 .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 20 .rel.got : { *(.rel.got) } 21 .rela.got : { *(.rela.got) } 22 .rel.ctors : { *(.rel.ctors) } 23 .rela.ctors : { *(.rela.ctors) } 24 .rel.dtors : { *(.rel.dtors) } 25 .rela.dtors : { *(.rela.dtors) } 26 .rel.init : { *(.rel.init) } 27 .rela.init : { *(.rela.init) } 28 .rel.fini : { *(.rel.fini) } 29 .rela.fini : { *(.rela.fini) } 30 .rel.bss : { *(.rel.bss) } 31 .rela.bss : { *(.rela.bss) } 32 .rel.plt : { *(.rel.plt) } 33 .rela.plt : { *(.rela.plt) } 34 .init : { *(.init) } =0x9090 35 .plt : { *(.plt) } 36 37 /* text/read-only data */ 38 .text : { *(.text .gnu.linkonce.t.*) } =0x9090 39 40 .rodata : { *(.rodata) } 41 42 /* writable data */ 43 . = ALIGN(0x1000) + (. & (0x1000 - 1)); 44 __data_start = .; 45 .data : { *(.data .gnu.linkonce.d.*) } 46 47 . = ALIGN(0x4); 48 __ctor_list = .; 49 .ctors : { *(.ctors) } 50 __ctor_end = .; 51 __dtor_list = .; 52 .dtors : { *(.dtors) } 53 __dtor_end = .; 54 .got : { *(.got.plt) *(.got) } 55 .dynamic : { *(.dynamic) } 56 57 /* uninitialized data (in same segment as writable data) */ 58 __bss_start = .; 59 .bss : { *(.bss) } 60 61 . = ALIGN(0x1000); 62 _end = . ; 63 64 /* Strip unnecessary stuff */ 65 /DISCARD/ : { *(.comment .note .eh_frame) } 66 } -
src/system/ldscripts/x86_64/boot_loader_bios_ia32.ld
1 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") 2 OUTPUT_ARCH(i386) 3 4 ENTRY(_start) 5 SECTIONS 6 { 7 . = 0x10000; 8 9 /* text/read-only data */ 10 .text : { *(.text .gnu.linkonce.t.*) } 11 12 . = ALIGN(0x4); 13 __ctor_list = .; 14 .ctors : { *(.ctors) } 15 __ctor_end = .; 16 17 .rodata : { *(.rodata .rodata.*) } 18 19 /* writable data */ 20 . = ALIGN(0x1000); 21 __data_start = .; 22 .data : { *(.data .gnu.linkonce.d.*) } 23 24 /* uninitialized data (in same segment as writable data) */ 25 __bss_start = .; 26 .bss : { *(.bss) } 27 28 . = ALIGN(0x1000); 29 _end = . ; 30 31 /* Strip unnecessary stuff */ 32 /DISCARD/ : { *(.comment .note .eh_frame .dtors .stab .stabstr .debug*) } 33 } -
src/system/ldscripts/x86_64/library.ld
1 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 2 OUTPUT_ARCH(i386:x86-64) 3 4 ENTRY(_start) 5 SEARCH_DIR("libgcc"); 6 SECTIONS 7 { 8 . = 0x00200000 + SIZEOF_HEADERS; 9 10 .interp : { *(.interp) } 11 .hash : { *(.hash) } 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } 15 .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } 16 .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } 17 .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) } 18 .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 19 .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 20 .rel.got : { *(.rel.got) } 21 .rela.got : { *(.rela.got) } 22 .rel.ctors : { *(.rel.ctors) } 23 .rela.ctors : { *(.rela.ctors) } 24 .rel.dtors : { *(.rel.dtors) } 25 .rela.dtors : { *(.rela.dtors) } 26 .rel.init : { *(.rel.init) } 27 .rela.init : { *(.rela.init) } 28 .rel.fini : { *(.rel.fini) } 29 .rela.fini : { *(.rela.fini) } 30 .rel.bss : { *(.rel.bss) } 31 .rela.bss : { *(.rela.bss) } 32 .rel.plt : { *(.rel.plt) } 33 .rela.plt : { *(.rela.plt) } 34 .init : { *(.init) } =0x9090 35 .fini : { *(.fini) } =0x9090 36 .plt : { *(.plt) } 37 38 /* text/read-only data */ 39 .text : { *(.text .gnu.linkonce.t.*) } 40 41 .rodata : { *(.rodata) } 42 43 /* writable data */ 44 . = ALIGN(0x1000) + (. & (0x1000 - 1)); 45 __data_start = .; 46 PROVIDE(_data_start = .); 47 .data : { *(.data .gnu.linkonce.d.*) } 48 49 __ctor_list = .; 50 PROVIDE (_ctor_list = .); 51 .ctors : { *(.ctors) } 52 __ctor_end = .; 53 PROVIDE (_ctor_end = .); 54 55 __dtor_list = .; 56 PROVIDE (_dtor_list = .); 57 .dtors : { *(.dtors) } 58 __dtor_end = .; 59 PROVIDE (_dtor_end = .); 60 61 .got : { *(.got.plt) *(.got) } 62 .dynamic : { *(.dynamic) } 63 64 65 /* uninitialized data (in same segment as writable data) */ 66 PROVIDE (__bss_start = .); 67 .bss : { *(.bss) } 68 69 . = ALIGN(0x1000); 70 PROVIDE (_end = .); 71 72 /* Strip unnecessary stuff */ 73 /DISCARD/ : { *(.comment .note) } 74 } -
src/system/ldscripts/x86_64/runtime_loader.ld
1 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 2 OUTPUT_ARCH(i386:x86-64) 3 4 ENTRY(runtime_loader) 5 SEARCH_DIR("libgcc"); 6 SECTIONS 7 { 8 . = 0x00100000 + SIZEOF_HEADERS; 9 10 .interp : { *(.interp) } 11 .hash : { *(.hash) } 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } 15 .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } 16 .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } 17 .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) } 18 .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 19 .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 20 .rel.got : { *(.rel.got) } 21 .rela.got : { *(.rela.got) } 22 .rel.ctors : { *(.rel.ctors) } 23 .rela.ctors : { *(.rela.ctors) } 24 .rel.dtors : { *(.rel.dtors) } 25 .rela.dtors : { *(.rela.dtors) } 26 .rel.init : { *(.rel.init) } 27 .rela.init : { *(.rela.init) } 28 .rel.fini : { *(.rel.fini) } 29 .rela.fini : { *(.rela.fini) } 30 .rel.bss : { *(.rel.bss) } 31 .rela.bss : { *(.rela.bss) } 32 .rel.plt : { *(.rel.plt) } 33 .rela.plt : { *(.rela.plt) } 34 .init : { *(.init) } =0x9090 35 .plt : { *(.plt) } 36 37 /* text/read-only data */ 38 .text : { *(.text .gnu.linkonce.t.*) } 39 40 .rodata : { *(.rodata) } 41 42 /* writable data */ 43 . = ALIGN(0x1000) + (. & (0x1000 - 1)); 44 __data_start = .; 45 PROVIDE(_data_start = .); 46 .data : { *(.data .gnu.linkonce.d.*) } 47 48 __ctor_list = .; 49 PROVIDE (_ctor_list = .); 50 .ctors : { *(.ctors) } 51 PROVIDE (__ctor_end = .); 52 53 54 /* uninitialized data (in same segment as writable data) */ 55 PROVIDE (__bss_start = .); 56 .bss : { *(.bss) } 57 58 . = ALIGN(0x1000); 59 PROVIDE (_end = .); 60 61 /* Strip unnecessary stuff */ 62 /DISCARD/ : { *(.comment .note .eh_frame .dtors) } 63 } -
src/system/ldscripts/x86_64/kernel.ld
1 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 2 OUTPUT_ARCH(i386:x86-64) 3 4 ENTRY(init_long_mode) 5 SEARCH_DIR("libgcc"); 6 SECTIONS 7 { 8 . = 0x80000000 + SIZEOF_HEADERS; 9 10 .interp : { *(.interp) } 11 .hash : { *(.hash) } 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } 15 .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } 16 .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } 17 .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) } 18 .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 19 .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 20 .rel.got : { *(.rel.got) } 21 .rela.got : { *(.rela.got) } 22 .rel.ctors : { *(.rel.ctors) } 23 .rela.ctors : { *(.rela.ctors) } 24 .rel.dtors : { *(.rel.dtors) } 25 .rela.dtors : { *(.rela.dtors) } 26 .rel.init : { *(.rel.init) } 27 .rela.init : { *(.rela.init) } 28 .rel.fini : { *(.rel.fini) } 29 .rela.fini : { *(.rela.fini) } 30 .rel.bss : { *(.rel.bss) } 31 .rela.bss : { *(.rela.bss) } 32 .rel.plt : { *(.rel.plt) } 33 .rela.plt : { *(.rela.plt) } 34 .init : { *(.init) } =0x9090 35 .plt : { *(.plt) } 36 37 /* text/read-only data */ 38 .text : { *(.text .gnu.linkonce.t.*) } =0x9090 39 40 .rodata : { *(.rodata) } 41 42 /* writable data */ 43 . = ALIGN(0x1000); 44 __data_start = .; 45 .data : { *(.data .gnu.linkonce.d.*) } 46 47 . = ALIGN(0x4); 48 __ctor_list = .; 49 .ctors : { *(.ctors) } 50 __ctor_end = .; 51 __dtor_list = .; 52 .dtors : { *(.dtors) } 53 __dtor_end = .; 54 .got : { *(.got.plt) *(.got) } 55 .dynamic : { *(.dynamic) } 56 57 /* uninitialized data (in same segment as writable data) */ 58 __bss_start = .; 59 .bss : { *(.bss) } 60 61 . = ALIGN(0x1000); 62 _end = . ; 63 64 /* Strip unnecessary stuff */ 65 /DISCARD/ : { *(.comment .note .eh_frame) } 66 } -
src/system/ldscripts/x86_64/app.ld
1 OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") 2 OUTPUT_ARCH(i386:x86-64) 3 4 ENTRY(_start) 5 SEARCH_DIR("libgcc"); 6 SECTIONS 7 { 8 . = 0x00200000 + SIZEOF_HEADERS; 9 10 .interp : { *(.interp) } 11 .hash : { *(.hash) } 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .rel.text : { *(.rel.text) *(.rel.gnu.linkonce.t*) } 15 .rela.text : { *(.rela.text) *(.rela.gnu.linkonce.t*) } 16 .rel.data : { *(.rel.data) *(.rel.gnu.linkonce.d*) } 17 .rela.data : { *(.rela.data) *(.rela.gnu.linkonce.d*) } 18 .rel.rodata : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 19 .rela.rodata : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 20 .rel.got : { *(.rel.got) } 21 .rela.got : { *(.rela.got) } 22 .rel.ctors : { *(.rel.ctors) } 23 .rela.ctors : { *(.rela.ctors) } 24 .rel.dtors : { *(.rel.dtors) } 25 .rela.dtors : { *(.rela.dtors) } 26 .rel.init : { *(.rel.init) } 27 .rela.init : { *(.rela.init) } 28 .rel.fini : { *(.rel.fini) } 29 .rela.fini : { *(.rela.fini) } 30 .rel.bss : { *(.rel.bss) } 31 .rela.bss : { *(.rela.bss) } 32 .rel.plt : { *(.rel.plt) } 33 .rela.plt : { *(.rela.plt) } 34 .init : { *(.init) } =0x9090 35 .fini : { *(.fini) } =0x9090 36 .plt : { *(.plt) } 37 38 /* text/read-only data */ 39 .text : { *(.text .gnu.linkonce.t.*) } 40 .rodata : { *(.rodata) } 41 42 /* writable data */ 43 . = ALIGN(0x1000) + (. & (0x1000 - 1)); 44 __data_start = .; 45 PROVIDE(_data_start = .); 46 .data : { *(.data .gnu.linkonce.d.*) } 47 48 __ctor_list = .; 49 PROVIDE (_ctor_list = .); 50 .ctors : { *(.ctors) } 51 __ctor_end = .; 52 PROVIDE (_ctor_end = .); 53 54 __dtor_list = .; 55 PROVIDE (_dtor_list = .); 56 .dtors : { *(.dtors) } 57 __dtor_end = .; 58 PROVIDE (_dtor_end = .); 59 60 .got : { *(.got.plt) *(.got) } 61 .dynamic : { *(.dynamic) } 62 63 /* uninitialized data (in same segment as writable data) */ 64 PROVIDE (__bss_start = .); 65 .bss : { *(.bss) } 66 67 . = ALIGN(0x1000); 68 PROVIDE (_end = .); 69 70 /* Strip unnecessary stuff */ 71 /DISCARD/ : { *(.comment .note) } 72 }