]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools GCC: use 'gcc' as the linker command for GCC44 and later
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Sat, 23 Jul 2016 08:19:46 +0000 (10:19 +0200)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 2 Aug 2016 06:40:43 +0000 (08:40 +0200)
To accommodate upcoming GCCx toolchain versions that require 'gcc' to
be used as the linker in order to support LTO, switch GCC44 and later
(including CLANG35) to a new DLINK build rule that invokes 'gcc' as the
linker instead of 'ld'. Since gcc expects its command line arguments in
a different format, and expects arguments that it needs to pass to the
linker to be prefixed with '-Wl,', this involves changes to most of the
DLINK_FLAGS definitions in tools_def.template, as well as some changes to
module .INF files that set their own linker options.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf
BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template
EmulatorPkg/Unix/Host/Host.inf

index a4ea5a05b652d22b54849c203b357af761ff0374..5e706934f69fb1fd392edaf3f619837489975124 100755 (executable)
   gArmTokenSpaceGuid.PcdFvBaseAddress\r
 \r
 [BuildOptions]\r
-  GCC:*_*_*_DLINK_FLAGS = -pie -$(MODULE_DIR)/Scripts/PrePi-PIE.lds\r
+  GCC:*_*_*_DLINK_FLAGS = -pie -Wl,-T,$(MODULE_DIR)/Scripts/PrePi-PIE.lds\r
index 3fea4f4561189d91809c04e19f33b64db6586e16..eb4ae749fda5bc7a7514a656ec2c95bfe59456e0 100644 (file)
     <Command.MSFT, Command.INTEL>\r
         "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)\r
 \r
-    <Command.GCC, Command.GCCLD>\r
+    <Command.GCC>\r
+        "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS)\r
+        "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r
+\r
+    <Command.GCCLD>\r
         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)\r
         "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}\r
 \r
     <Command.MSFT, Command.INTEL>\r
         "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)\r
 \r
-    <Command.GCC, Command.GCCLD>\r
+    <Command.GCC>\r
+        "$(DLINK)" $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS)\r
+\r
+    <Command.GCCLD>\r
         "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)\r
 \r
     <Command.RVCT>\r
index 8a04e38e128868312237e9c65e131089a16d9785..10ac21e42c8f5f790041fe06ccb302390082cad5 100644 (file)
@@ -4329,14 +4329,14 @@ DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi
 DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char  -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address -fno-asynchronous-unwind-tables\r
 DEFINE GCC_AARCH64_CC_XIPFLAGS     = -mstrict-align\r
 DEFINE GCC_DLINK_FLAGS_COMMON      = -nostdlib --pie\r
-DEFINE GCC_DLINK2_FLAGS_COMMON     = --script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds\r
+DEFINE GCC_DLINK2_FLAGS_COMMON     = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds\r
 DEFINE GCC_IA32_X64_DLINK_COMMON   = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections\r
-DEFINE GCC_ARM_AARCH64_DLINK_COMMON= --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_ARM_DLINK_FLAGS         = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20\r
 DEFINE GCC_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20\r
 DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
-DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
-DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
+DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
+DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
 DEFINE GCC_IA32_X64_DLINK_FLAGS    = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_IPF_DLINK_FLAGS         = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_IPF_OBJCOPY_FLAGS       = -I elf64-ia64-little -O efi-bsdrv-ia64\r
@@ -4356,12 +4356,12 @@ DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64
 DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
 DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables\r
 DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -Os -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables\r
-DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections -z common-page-size=0x20\r
-DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable\r
-DEFINE GCC44_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-DEFINE GCC44_IA32_DLINK2_FLAGS       = --defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)\r
-DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64\r
-DEFINE GCC44_X64_DLINK2_FLAGS        = --defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON)\r
+DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20\r
+DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable\r
+DEFINE GCC44_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC44_IA32_DLINK2_FLAGS       = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)\r
+DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64\r
+DEFINE GCC44_X64_DLINK2_FLAGS        = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON)\r
 DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)\r
 \r
 DEFINE GCC45_IA32_CC_FLAGS           = DEF(GCC44_IA32_CC_FLAGS)\r
@@ -4385,9 +4385,9 @@ DEFINE GCC46_X64_DLINK2_FLAGS        = DEF(GCC45_X64_DLINK2_FLAGS)
 DEFINE GCC46_ASM_FLAGS               = DEF(GCC45_ASM_FLAGS)\r
 DEFINE GCC46_ARM_ASM_FLAGS           = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian\r
 DEFINE GCC46_ARM_CC_FLAGS            = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations -save-temps\r
-DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_DLINK_FLAGS) --oformat=elf32-littlearm\r
-DEFINE GCC46_ARM_DLINK2_FLAGS        = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x220\r
-DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_ASLDLINK_FLAGS) --oformat=elf32-littlearm\r
+DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
+DEFINE GCC46_ARM_DLINK2_FLAGS        = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220\r
+DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_ASLDLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
 \r
 DEFINE GCC47_IA32_CC_FLAGS           = DEF(GCC46_IA32_CC_FLAGS)\r
 DEFINE GCC47_X64_CC_FLAGS            = DEF(GCC46_X64_CC_FLAGS)\r
@@ -4406,7 +4406,7 @@ DEFINE GCC47_AARCH64_CC_XIPFLAGS     = DEF(GCC_AARCH64_CC_XIPFLAGS)
 DEFINE GCC47_ARM_DLINK_FLAGS         = DEF(GCC46_ARM_DLINK_FLAGS)\r
 DEFINE GCC47_ARM_DLINK2_FLAGS        = DEF(GCC46_ARM_DLINK2_FLAGS)\r
 DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_AARCH64_DLINK_FLAGS)\r
-DEFINE GCC47_AARCH64_DLINK2_FLAGS    = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x228\r
+DEFINE GCC47_AARCH64_DLINK2_FLAGS    = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
 DEFINE GCC47_ARM_ASLDLINK_FLAGS      = DEF(GCC46_ARM_ASLDLINK_FLAGS)\r
 DEFINE GCC47_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
 \r
@@ -4433,11 +4433,11 @@ DEFINE GCC48_AARCH64_ASLDLINK_FLAGS  = DEF(GCC47_AARCH64_ASLDLINK_FLAGS)
 \r
 DEFINE GCC49_IA32_CC_FLAGS           = DEF(GCC48_IA32_CC_FLAGS)\r
 DEFINE GCC49_X64_CC_FLAGS            = DEF(GCC48_X64_CC_FLAGS)\r
-DEFINE GCC49_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections -z common-page-size=0x40\r
-DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable\r
-DEFINE GCC49_IA32_X64_DLINK_FLAGS    = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC49_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40\r
+DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable\r
+DEFINE GCC49_IA32_X64_DLINK_FLAGS    = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC49_IA32_DLINK2_FLAGS       = DEF(GCC48_IA32_DLINK2_FLAGS)\r
-DEFINE GCC49_X64_DLINK_FLAGS         = DEF(GCC49_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64\r
+DEFINE GCC49_X64_DLINK_FLAGS         = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64\r
 DEFINE GCC49_X64_DLINK2_FLAGS        = DEF(GCC48_X64_DLINK2_FLAGS)\r
 DEFINE GCC49_ASM_FLAGS               = DEF(GCC48_ASM_FLAGS)\r
 DEFINE GCC49_ARM_ASM_FLAGS           = DEF(GCC48_ARM_ASM_FLAGS)\r
@@ -4567,8 +4567,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_IA32_OBJCOPY_PATH         = DEF(GCC44_IA32_PREFIX)objcopy\r
 *_GCC44_IA32_CC_PATH              = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_SLINK_PATH           = DEF(GCC44_IA32_PREFIX)ar\r
-*_GCC44_IA32_DLINK_PATH           = DEF(GCC44_IA32_PREFIX)ld\r
-*_GCC44_IA32_ASLDLINK_PATH        = DEF(GCC44_IA32_PREFIX)ld\r
+*_GCC44_IA32_DLINK_PATH           = DEF(GCC44_IA32_PREFIX)gcc\r
+*_GCC44_IA32_ASLDLINK_PATH        = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_ASM_PATH             = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_PP_PATH              = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_VFRPP_PATH           = DEF(GCC44_IA32_PREFIX)gcc\r
@@ -4577,10 +4577,10 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_IA32_RC_PATH              = DEF(GCC44_IA32_PREFIX)objcopy\r
 \r
 *_GCC44_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC44_IA32_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC44_IA32_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC44_IA32_ASM_FLAGS            = DEF(GCC44_ASM_FLAGS) -m32 --32 -march=i386\r
 *_GCC44_IA32_CC_FLAGS             = DEF(GCC44_IA32_CC_FLAGS) -Os\r
-*_GCC44_IA32_DLINK_FLAGS          = DEF(GCC44_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC44_IA32_DLINK_FLAGS          = DEF(GCC44_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC44_IA32_DLINK2_FLAGS         = DEF(GCC44_IA32_DLINK2_FLAGS)\r
 *_GCC44_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC44_IA32_OBJCOPY_FLAGS        = \r
@@ -4592,8 +4592,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_X64_OBJCOPY_PATH         = DEF(GCC44_X64_PREFIX)objcopy\r
 *_GCC44_X64_CC_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_SLINK_PATH           = DEF(GCC44_X64_PREFIX)ar\r
-*_GCC44_X64_DLINK_PATH           = DEF(GCC44_X64_PREFIX)ld\r
-*_GCC44_X64_ASLDLINK_PATH        = DEF(GCC44_X64_PREFIX)ld\r
+*_GCC44_X64_DLINK_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_ASLDLINK_PATH        = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_ASM_PATH             = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_PP_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_VFRPP_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
@@ -4602,7 +4602,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_X64_RC_PATH              = DEF(GCC44_X64_PREFIX)objcopy\r
 \r
 *_GCC44_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC44_X64_ASM_FLAGS            = DEF(GCC44_ASM_FLAGS) -m64 --64 -melf_x86_64\r
 *_GCC44_X64_CC_FLAGS             = DEF(GCC44_X64_CC_FLAGS)\r
 *_GCC44_X64_DLINK_FLAGS          = DEF(GCC44_X64_DLINK_FLAGS)\r
@@ -4637,8 +4637,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC45_IA32_OBJCOPY_PATH         = DEF(GCC45_IA32_PREFIX)objcopy\r
 *_GCC45_IA32_CC_PATH              = DEF(GCC45_IA32_PREFIX)gcc\r
 *_GCC45_IA32_SLINK_PATH           = DEF(GCC45_IA32_PREFIX)ar\r
-*_GCC45_IA32_DLINK_PATH           = DEF(GCC45_IA32_PREFIX)ld\r
-*_GCC45_IA32_ASLDLINK_PATH        = DEF(GCC45_IA32_PREFIX)ld\r
+*_GCC45_IA32_DLINK_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_ASLDLINK_PATH        = DEF(GCC45_IA32_PREFIX)gcc\r
 *_GCC45_IA32_ASM_PATH             = DEF(GCC45_IA32_PREFIX)gcc\r
 *_GCC45_IA32_PP_PATH              = DEF(GCC45_IA32_PREFIX)gcc\r
 *_GCC45_IA32_VFRPP_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
@@ -4647,10 +4647,10 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC45_IA32_RC_PATH              = DEF(GCC45_IA32_PREFIX)objcopy\r
 \r
 *_GCC45_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC45_IA32_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC45_IA32_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC45_IA32_ASM_FLAGS            = DEF(GCC45_ASM_FLAGS) -m32 --32 -march=i386\r
 *_GCC45_IA32_CC_FLAGS             = DEF(GCC45_IA32_CC_FLAGS) -Os\r
-*_GCC45_IA32_DLINK_FLAGS          = DEF(GCC45_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC45_IA32_DLINK_FLAGS          = DEF(GCC45_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC45_IA32_DLINK2_FLAGS         = DEF(GCC45_IA32_DLINK2_FLAGS)\r
 *_GCC45_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC45_IA32_OBJCOPY_FLAGS        = \r
@@ -4662,8 +4662,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC45_X64_OBJCOPY_PATH         = DEF(GCC45_X64_PREFIX)objcopy\r
 *_GCC45_X64_CC_PATH              = DEF(GCC45_X64_PREFIX)gcc\r
 *_GCC45_X64_SLINK_PATH           = DEF(GCC45_X64_PREFIX)ar\r
-*_GCC45_X64_DLINK_PATH           = DEF(GCC45_X64_PREFIX)ld\r
-*_GCC45_X64_ASLDLINK_PATH        = DEF(GCC45_X64_PREFIX)ld\r
+*_GCC45_X64_DLINK_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_ASLDLINK_PATH        = DEF(GCC45_X64_PREFIX)gcc\r
 *_GCC45_X64_ASM_PATH             = DEF(GCC45_X64_PREFIX)gcc\r
 *_GCC45_X64_PP_PATH              = DEF(GCC45_X64_PREFIX)gcc\r
 *_GCC45_X64_VFRPP_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
@@ -4672,7 +4672,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC45_X64_RC_PATH              = DEF(GCC45_X64_PREFIX)objcopy\r
 \r
 *_GCC45_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC45_X64_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC45_X64_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC45_X64_ASM_FLAGS            = DEF(GCC45_ASM_FLAGS) -m64 --64 -melf_x86_64\r
 *_GCC45_X64_CC_FLAGS             = DEF(GCC45_X64_CC_FLAGS)\r
 *_GCC45_X64_DLINK_FLAGS          = DEF(GCC45_X64_DLINK_FLAGS)\r
@@ -4707,8 +4707,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_IA32_OBJCOPY_PATH         = DEF(GCC46_IA32_PREFIX)objcopy\r
 *_GCC46_IA32_CC_PATH              = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_SLINK_PATH           = DEF(GCC46_IA32_PREFIX)ar\r
-*_GCC46_IA32_DLINK_PATH           = DEF(GCC46_IA32_PREFIX)ld\r
-*_GCC46_IA32_ASLDLINK_PATH        = DEF(GCC46_IA32_PREFIX)ld\r
+*_GCC46_IA32_DLINK_PATH           = DEF(GCC46_IA32_PREFIX)gcc\r
+*_GCC46_IA32_ASLDLINK_PATH        = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_ASM_PATH             = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_PP_PATH              = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_VFRPP_PATH           = DEF(GCC46_IA32_PREFIX)gcc\r
@@ -4717,9 +4717,9 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_IA32_RC_PATH              = DEF(GCC46_IA32_PREFIX)objcopy\r
 \r
 *_GCC46_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC46_IA32_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC46_IA32_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC46_IA32_ASM_FLAGS            = DEF(GCC46_ASM_FLAGS) -m32 -march=i386\r
-*_GCC46_IA32_DLINK_FLAGS          = DEF(GCC46_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC46_IA32_DLINK_FLAGS          = DEF(GCC46_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC46_IA32_DLINK2_FLAGS         = DEF(GCC46_IA32_DLINK2_FLAGS)\r
 *_GCC46_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC46_IA32_OBJCOPY_FLAGS        = \r
@@ -4734,8 +4734,8 @@ RELEASE_GCC46_IA32_CC_FLAGS       = DEF(GCC46_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC46_X64_OBJCOPY_PATH         = DEF(GCC46_X64_PREFIX)objcopy\r
 *_GCC46_X64_CC_PATH              = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_SLINK_PATH           = DEF(GCC46_X64_PREFIX)ar\r
-*_GCC46_X64_DLINK_PATH           = DEF(GCC46_X64_PREFIX)ld\r
-*_GCC46_X64_ASLDLINK_PATH        = DEF(GCC46_X64_PREFIX)ld\r
+*_GCC46_X64_DLINK_PATH           = DEF(GCC46_X64_PREFIX)gcc\r
+*_GCC46_X64_ASLDLINK_PATH        = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_ASM_PATH             = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_PP_PATH              = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_VFRPP_PATH           = DEF(GCC46_X64_PREFIX)gcc\r
@@ -4744,7 +4744,7 @@ RELEASE_GCC46_IA32_CC_FLAGS       = DEF(GCC46_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC46_X64_RC_PATH              = DEF(GCC46_X64_PREFIX)objcopy\r
 \r
 *_GCC46_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC46_X64_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC46_X64_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC46_X64_ASM_FLAGS            = DEF(GCC46_ASM_FLAGS) -m64 -melf_x86_64\r
 *_GCC46_X64_DLINK_FLAGS          = DEF(GCC46_X64_DLINK_FLAGS)\r
 *_GCC46_X64_DLINK2_FLAGS         = DEF(GCC46_X64_DLINK2_FLAGS)\r
@@ -4761,8 +4761,8 @@ RELEASE_GCC46_X64_CC_FLAGS       = DEF(GCC46_X64_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC46_ARM_OBJCOPY_PATH         = echo\r
 *_GCC46_ARM_CC_PATH              = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_SLINK_PATH           = ENV(GCC46_ARM_PREFIX)ar\r
-*_GCC46_ARM_DLINK_PATH           = ENV(GCC46_ARM_PREFIX)ld\r
-*_GCC46_ARM_ASLDLINK_PATH        = ENV(GCC46_ARM_PREFIX)ld\r
+*_GCC46_ARM_DLINK_PATH           = ENV(GCC46_ARM_PREFIX)gcc\r
+*_GCC46_ARM_ASLDLINK_PATH        = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_ASM_PATH             = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_PP_PATH              = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_VFRPP_PATH           = ENV(GCC46_ARM_PREFIX)gcc\r
@@ -4812,8 +4812,8 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_IA32_OBJCOPY_PATH         = DEF(GCC47_IA32_PREFIX)objcopy\r
 *_GCC47_IA32_CC_PATH              = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_SLINK_PATH           = DEF(GCC47_IA32_PREFIX)ar\r
-*_GCC47_IA32_DLINK_PATH           = DEF(GCC47_IA32_PREFIX)ld\r
-*_GCC47_IA32_ASLDLINK_PATH        = DEF(GCC47_IA32_PREFIX)ld\r
+*_GCC47_IA32_DLINK_PATH           = DEF(GCC47_IA32_PREFIX)gcc\r
+*_GCC47_IA32_ASLDLINK_PATH        = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_ASM_PATH             = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_PP_PATH              = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_VFRPP_PATH           = DEF(GCC47_IA32_PREFIX)gcc\r
@@ -4822,9 +4822,9 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_IA32_RC_PATH              = DEF(GCC47_IA32_PREFIX)objcopy\r
 \r
 *_GCC47_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC47_IA32_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC47_IA32_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC47_IA32_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m32 -march=i386\r
-*_GCC47_IA32_DLINK_FLAGS          = DEF(GCC47_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC47_IA32_DLINK_FLAGS          = DEF(GCC47_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC47_IA32_DLINK2_FLAGS         = DEF(GCC47_IA32_DLINK2_FLAGS)\r
 *_GCC47_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC47_IA32_OBJCOPY_FLAGS        = \r
@@ -4839,8 +4839,8 @@ RELEASE_GCC47_IA32_CC_FLAGS       = DEF(GCC47_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC47_X64_OBJCOPY_PATH         = DEF(GCC47_X64_PREFIX)objcopy\r
 *_GCC47_X64_CC_PATH              = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_SLINK_PATH           = DEF(GCC47_X64_PREFIX)ar\r
-*_GCC47_X64_DLINK_PATH           = DEF(GCC47_X64_PREFIX)ld\r
-*_GCC47_X64_ASLDLINK_PATH        = DEF(GCC47_X64_PREFIX)ld\r
+*_GCC47_X64_DLINK_PATH           = DEF(GCC47_X64_PREFIX)gcc\r
+*_GCC47_X64_ASLDLINK_PATH        = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_ASM_PATH             = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_PP_PATH              = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_VFRPP_PATH           = DEF(GCC47_X64_PREFIX)gcc\r
@@ -4849,7 +4849,7 @@ RELEASE_GCC47_IA32_CC_FLAGS       = DEF(GCC47_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC47_X64_RC_PATH              = DEF(GCC47_X64_PREFIX)objcopy\r
 \r
 *_GCC47_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC47_X64_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC47_X64_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC47_X64_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m64\r
 *_GCC47_X64_DLINK_FLAGS          = DEF(GCC47_X64_DLINK_FLAGS)\r
 *_GCC47_X64_DLINK2_FLAGS         = DEF(GCC47_X64_DLINK2_FLAGS)\r
@@ -4865,8 +4865,8 @@ RELEASE_GCC47_X64_CC_FLAGS       = DEF(GCC47_X64_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC47_ARM_CC_PATH              = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_SLINK_PATH           = ENV(GCC47_ARM_PREFIX)ar\r
-*_GCC47_ARM_DLINK_PATH           = ENV(GCC47_ARM_PREFIX)ld\r
-*_GCC47_ARM_ASLDLINK_PATH        = ENV(GCC47_ARM_PREFIX)ld\r
+*_GCC47_ARM_DLINK_PATH           = ENV(GCC47_ARM_PREFIX)gcc\r
+*_GCC47_ARM_ASLDLINK_PATH        = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_ASM_PATH             = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_PP_PATH              = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_VFRPP_PATH           = ENV(GCC47_ARM_PREFIX)gcc\r
@@ -4895,8 +4895,8 @@ RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC47_AARCH64_CC_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_SLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ar\r
-*_GCC47_AARCH64_DLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ld\r
-*_GCC47_AARCH64_ASLDLINK_PATH    = ENV(GCC47_AARCH64_PREFIX)ld\r
+*_GCC47_AARCH64_DLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc\r
+*_GCC47_AARCH64_ASLDLINK_PATH    = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_ASM_PATH         = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_PP_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_VFRPP_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc\r
@@ -4944,8 +4944,8 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_IA32_OBJCOPY_PATH         = DEF(GCC48_IA32_PREFIX)objcopy\r
 *_GCC48_IA32_CC_PATH              = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_SLINK_PATH           = DEF(GCC48_IA32_PREFIX)ar\r
-*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)ld\r
-*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)ld\r
+*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
+*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_ASM_PATH             = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_PP_PATH              = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_VFRPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
@@ -4954,9 +4954,9 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_IA32_RC_PATH              = DEF(GCC48_IA32_PREFIX)objcopy\r
 \r
 *_GCC48_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC48_IA32_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m32 -march=i386\r
-*_GCC48_IA32_DLINK_FLAGS          = DEF(GCC48_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC48_IA32_DLINK_FLAGS          = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)\r
 *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC48_IA32_OBJCOPY_FLAGS        = \r
@@ -4971,8 +4971,8 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC48_X64_OBJCOPY_PATH         = DEF(GCC48_X64_PREFIX)objcopy\r
 *_GCC48_X64_CC_PATH              = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_SLINK_PATH           = DEF(GCC48_X64_PREFIX)ar\r
-*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)ld\r
-*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)ld\r
+*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
+*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_ASM_PATH             = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_PP_PATH              = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_VFRPP_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
@@ -4981,7 +4981,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC48_X64_RC_PATH              = DEF(GCC48_X64_PREFIX)objcopy\r
 \r
 *_GCC48_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC48_X64_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m64\r
 *_GCC48_X64_DLINK_FLAGS          = DEF(GCC48_X64_DLINK_FLAGS)\r
 *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)\r
@@ -4997,8 +4997,8 @@ RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC48_ARM_CC_PATH              = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_SLINK_PATH           = ENV(GCC48_ARM_PREFIX)ar\r
-*_GCC48_ARM_DLINK_PATH           = ENV(GCC48_ARM_PREFIX)ld\r
-*_GCC48_ARM_ASLDLINK_PATH        = ENV(GCC48_ARM_PREFIX)ld\r
+*_GCC48_ARM_DLINK_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
+*_GCC48_ARM_ASLDLINK_PATH        = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_ASM_PATH             = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_PP_PATH              = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_VFRPP_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
@@ -5027,8 +5027,8 @@ RELEASE_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC48_AARCH64_CC_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_SLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ar\r
-*_GCC48_AARCH64_DLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ld\r
-*_GCC48_AARCH64_ASLDLINK_PATH    = ENV(GCC48_AARCH64_PREFIX)ld\r
+*_GCC48_AARCH64_DLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
+*_GCC48_AARCH64_ASLDLINK_PATH    = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_ASM_PATH         = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_PP_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_VFRPP_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
@@ -5076,8 +5076,8 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_IA32_OBJCOPY_PATH         = DEF(GCC49_IA32_PREFIX)objcopy\r
 *_GCC49_IA32_CC_PATH              = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_SLINK_PATH           = DEF(GCC49_IA32_PREFIX)ar\r
-*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)ld\r
-*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)ld\r
+*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)gcc\r
+*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_ASM_PATH             = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_PP_PATH              = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_VFRPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc\r
@@ -5086,9 +5086,9 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_IA32_RC_PATH              = DEF(GCC49_IA32_PREFIX)objcopy\r
 \r
 *_GCC49_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC49_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m32 -march=i386\r
-*_GCC49_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC49_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)\r
 *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC49_IA32_OBJCOPY_FLAGS        = \r
@@ -5103,8 +5103,8 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC49_X64_OBJCOPY_PATH         = DEF(GCC49_X64_PREFIX)objcopy\r
 *_GCC49_X64_CC_PATH              = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_SLINK_PATH           = DEF(GCC49_X64_PREFIX)ar\r
-*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)ld\r
-*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)ld\r
+*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)gcc\r
+*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_ASM_PATH             = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_PP_PATH              = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_VFRPP_PATH           = DEF(GCC49_X64_PREFIX)gcc\r
@@ -5113,7 +5113,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but
 *_GCC49_X64_RC_PATH              = DEF(GCC49_X64_PREFIX)objcopy\r
 \r
 *_GCC49_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC49_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m64\r
 *_GCC49_X64_DLINK_FLAGS          = DEF(GCC49_X64_DLINK_FLAGS)\r
 *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)\r
@@ -5129,8 +5129,8 @@ RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC49_ARM_CC_PATH              = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_SLINK_PATH           = ENV(GCC49_ARM_PREFIX)ar\r
-*_GCC49_ARM_DLINK_PATH           = ENV(GCC49_ARM_PREFIX)ld\r
-*_GCC49_ARM_ASLDLINK_PATH        = ENV(GCC49_ARM_PREFIX)ld\r
+*_GCC49_ARM_DLINK_PATH           = ENV(GCC49_ARM_PREFIX)gcc\r
+*_GCC49_ARM_ASLDLINK_PATH        = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_ASM_PATH             = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_PP_PATH              = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_VFRPP_PATH           = ENV(GCC49_ARM_PREFIX)gcc\r
@@ -5159,8 +5159,8 @@ RELEASE_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-v
 ##################\r
 *_GCC49_AARCH64_CC_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_SLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ar\r
-*_GCC49_AARCH64_DLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ld\r
-*_GCC49_AARCH64_ASLDLINK_PATH    = ENV(GCC49_AARCH64_PREFIX)ld\r
+*_GCC49_AARCH64_DLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc\r
+*_GCC49_AARCH64_ASLDLINK_PATH    = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_ASM_PATH         = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_PP_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_VFRPP_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc\r
@@ -5209,9 +5209,11 @@ RELEASE_GCC49_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS)
 *_CLANG35_*_VFRPP_PATH           = ENV(CLANG35_BIN)clang\r
 *_CLANG35_*_ASLCC_PATH           = ENV(CLANG35_BIN)clang\r
 *_CLANG35_*_ASLPP_PATH           = ENV(CLANG35_BIN)clang\r
+*_CLANG35_*_DLINK_PATH           = ENV(CLANG35_BIN)clang\r
+*_CLANG35_*_ASLDLINK_PATH        = ENV(CLANG35_BIN)clang\r
 \r
-DEFINE CLANG35_ARM_TARGET        = -target armv7-none-linux-gnueabi\r
-DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-none-linux-gnu\r
+DEFINE CLANG35_ARM_TARGET        = -target arm-linux-gnueabihf\r
+DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu\r
 \r
 DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body\r
 DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG35_ARM_TARGET) -mstrict-align DEF(CLANG35_WARNING_OVERRIDES)\r
@@ -5221,15 +5223,13 @@ DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG35_AARCH64
 # CLANG35 ARM definitions\r
 ##################\r
 *_CLANG35_ARM_SLINK_PATH         = ENV(CLANG35_ARM_PREFIX)ar\r
-*_CLANG35_ARM_DLINK_PATH         = ENV(CLANG35_ARM_PREFIX)ld\r
-*_CLANG35_ARM_ASLDLINK_PATH      = ENV(CLANG35_ARM_PREFIX)ld\r
 *_CLANG35_ARM_RC_PATH            = ENV(CLANG35_ARM_PREFIX)objcopy\r
 \r
 *_CLANG35_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)\r
-*_CLANG35_ARM_ASLDLINK_FLAGS     = DEF(GCC_ARM_ASLDLINK_FLAGS)\r
+*_CLANG35_ARM_ASLDLINK_FLAGS     = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)\r
 *_CLANG35_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANG35_ARM_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
-*_CLANG35_ARM_DLINK_FLAGS        = DEF(GCC_ARM_DLINK_FLAGS)\r
-*_CLANG35_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x220\r
+*_CLANG35_ARM_DLINK_FLAGS        = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)\r
+*_CLANG35_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220\r
 *_CLANG35_ARM_PLATFORM_FLAGS     =\r
 *_CLANG35_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANG35_ARM_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
 *_CLANG35_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)\r
@@ -5243,15 +5243,13 @@ RELEASE_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(P
 # CLANG35 AARCH64 definitions\r
 ##################\r
 *_CLANG35_AARCH64_SLINK_PATH     = ENV(CLANG35_AARCH64_PREFIX)ar\r
-*_CLANG35_AARCH64_DLINK_PATH     = ENV(CLANG35_AARCH64_PREFIX)ld\r
-*_CLANG35_AARCH64_ASLDLINK_PATH  = ENV(CLANG35_AARCH64_PREFIX)ld\r
 *_CLANG35_AARCH64_RC_PATH        = ENV(CLANG35_AARCH64_PREFIX)objcopy\r
 \r
 *_CLANG35_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)\r
-*_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
+*_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
 *_CLANG35_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
-*_CLANG35_AARCH64_DLINK_FLAGS    = DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
-*_CLANG35_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x228\r
+*_CLANG35_AARCH64_DLINK_FLAGS    = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
+*_CLANG35_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
 *_CLANG35_AARCH64_PLATFORM_FLAGS =\r
 *_CLANG35_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
 *_CLANG35_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS)\r
index d0b4927d1678ba620894978eb68f66383193204b..d83857a1fd680352e6f6353671134c459b684946 100644 (file)
 \r
 \r
 [BuildOptions]\r
-   GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_i386 -dynamic-linker $(HOST_DLINK_PATHS) -L/usr/lib/i386-linux-gnu -L/usr/X11R6/lib -lXext -lX11\r
+   GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m32 -L/usr/X11R6/lib\r
    GCC:*_*_IA32_CC_FLAGS == -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
    GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
    GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 \r
-   GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m elf_x86_64 -dynamic-linker $(HOST_DLINK_PATHS) -L/usr/lib/x86_64-linux-gnu -L/usr/X11R6/lib -lXext -lX11\r
+   GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib\r
    GCC:*_*_X64_CC_FLAGS == -m64 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
    GCC:*_GCC44_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"\r
    GCC:*_GCC45_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"\r
    GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
    GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 \r
-   GCC:*_*_*_DLINK2_FLAGS == -lpthread -lc -ldl\r
+   GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11\r
 \r
 #\r
 # Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version\r