mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 08:51:10 +02:00
+ x86_64-linux: build ABI tag separately, the purpose it twofold: 1) it is the only part of startup that cannot be yet handled directly by compiler, 2) it provides a single point to modify whenever necessary.
git-svn-id: trunk@29558 -
This commit is contained in:
parent
bb8de483f2
commit
e2eb6dffbb
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8602,6 +8602,7 @@ rtl/linux/unxconst.inc svneol=native#text/plain
|
|||||||
rtl/linux/unxfunc.inc svneol=native#text/plain
|
rtl/linux/unxfunc.inc svneol=native#text/plain
|
||||||
rtl/linux/unxsysc.inc svneol=native#text/plain
|
rtl/linux/unxsysc.inc svneol=native#text/plain
|
||||||
rtl/linux/unxsysch.inc svneol=native#text/plain
|
rtl/linux/unxsysch.inc svneol=native#text/plain
|
||||||
|
rtl/linux/x86_64/abitag.as svneol=native#text/plain
|
||||||
rtl/linux/x86_64/bsyscall.inc svneol=native#text/plain
|
rtl/linux/x86_64/bsyscall.inc svneol=native#text/plain
|
||||||
rtl/linux/x86_64/cprt0.as svneol=native#text/plain
|
rtl/linux/x86_64/cprt0.as svneol=native#text/plain
|
||||||
rtl/linux/x86_64/dllprt0.as svneol=native#text/plain
|
rtl/linux/x86_64/dllprt0.as svneol=native#text/plain
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
|
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-01-05 rev 29399]
|
||||||
#
|
#
|
||||||
default: all
|
default: all
|
||||||
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
|
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
|
||||||
@ -349,6 +349,7 @@ endif
|
|||||||
ifeq ($(ARCH),x86_64)
|
ifeq ($(ARCH),x86_64)
|
||||||
CPU_UNITS=x86 ports cpu
|
CPU_UNITS=x86 ports cpu
|
||||||
SYSINIT_UNITS=si_prc si_c si_g si_dll
|
SYSINIT_UNITS=si_prc si_c si_g si_dll
|
||||||
|
override LOADERS+=abitag
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),mipsel)
|
ifeq ($(ARCH),mipsel)
|
||||||
override FPCOPT+=-Ur
|
override FPCOPT+=-Ur
|
||||||
@ -2974,7 +2975,7 @@ ifdef CREATESHARED
|
|||||||
override FPCOPT+=-Cg
|
override FPCOPT+=-Cg
|
||||||
endif
|
endif
|
||||||
ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
|
ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
|
||||||
ifeq ($(CPU_TARGET),x86_64)
|
ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
|
||||||
override FPCOPT+=-Cg
|
override FPCOPT+=-Cg
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -3448,6 +3449,8 @@ ifeq ($(ARCH),arm)
|
|||||||
endif
|
endif
|
||||||
prt0$(OEXT) : $(ARCH)/prt0.as
|
prt0$(OEXT) : $(ARCH)/prt0.as
|
||||||
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(ARCH)/prt0.as
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(ARCH)/prt0.as
|
||||||
|
abitag$(OEXT) : $(ARCH)/abitag.as
|
||||||
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)abitag$(OEXT) $(ARCH)/abitag.as
|
||||||
dllprt0$(OEXT) : $(ARCH)/dllprt0.as
|
dllprt0$(OEXT) : $(ARCH)/dllprt0.as
|
||||||
ifndef ARMTHUMB
|
ifndef ARMTHUMB
|
||||||
$(AS) $(ASTARGET) $(ASSHAREDOPT) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(ARCH)/dllprt0.as
|
$(AS) $(ASTARGET) $(ASSHAREDOPT) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(ARCH)/dllprt0.as
|
||||||
|
@ -77,6 +77,7 @@ endif
|
|||||||
ifeq ($(ARCH),x86_64)
|
ifeq ($(ARCH),x86_64)
|
||||||
CPU_UNITS=x86 ports cpu
|
CPU_UNITS=x86 ports cpu
|
||||||
SYSINIT_UNITS=si_prc si_c si_g si_dll
|
SYSINIT_UNITS=si_prc si_c si_g si_dll
|
||||||
|
override LOADERS+=abitag
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# mipsel reuses mips files by including so some file names exist
|
# mipsel reuses mips files by including so some file names exist
|
||||||
@ -163,6 +164,8 @@ endif
|
|||||||
prt0$(OEXT) : $(ARCH)/prt0.as
|
prt0$(OEXT) : $(ARCH)/prt0.as
|
||||||
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(ARCH)/prt0.as
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(ARCH)/prt0.as
|
||||||
|
|
||||||
|
abitag$(OEXT) : $(ARCH)/abitag.as
|
||||||
|
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)abitag$(OEXT) $(ARCH)/abitag.as
|
||||||
|
|
||||||
# ASSHAREDOPT adds -KPIC mandatoy for mips/mipsel objects in shared libs
|
# ASSHAREDOPT adds -KPIC mandatoy for mips/mipsel objects in shared libs
|
||||||
#
|
#
|
||||||
|
29
rtl/linux/x86_64/abitag.as
Normal file
29
rtl/linux/x86_64/abitag.as
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
# This file is part of the Free Pascal run time library.
|
||||||
|
# Copyright (c) 2002 by Florian Klaempfl
|
||||||
|
# members of the Free Pascal development team.
|
||||||
|
#
|
||||||
|
# See the file COPYING.FPC, included in this distribution,
|
||||||
|
# for details about the copyright.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY;without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
#**********************************************************************
|
||||||
|
|
||||||
|
.file "abitag.as"
|
||||||
|
|
||||||
|
.section ".note.ABI-tag", "a"
|
||||||
|
.align 4
|
||||||
|
.long 1f - 0f
|
||||||
|
.long 3f - 2f
|
||||||
|
.long 1
|
||||||
|
0: .asciz "GNU"
|
||||||
|
1: .align 4
|
||||||
|
2: .long 0
|
||||||
|
.long 2,4,0
|
||||||
|
3: .align 4
|
||||||
|
|
||||||
|
.section .note.GNU-stack,"",@progbits
|
||||||
|
|
Loading…
Reference in New Issue
Block a user