* Modified bootstrap code so separate prt0.as/prt0_10.as files are no

longer necessary
This commit is contained in:
daniel 2004-07-03 21:50:30 +00:00
parent 5062c04096
commit a1229ff8fe
25 changed files with 517 additions and 976 deletions

View File

@ -1,25 +1,15 @@
#
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
# Don't edit, this file is generated by FPCMake Version 1.1 [2002/05/23]
#
default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) sunos qnx
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware
override PATH:=$(subst \,/,$(PATH))
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@ -42,26 +32,29 @@ inOS2=1
endif
endif
else
ifneq ($(findstring cygdrive,$(PATH)),)
ifneq ($(findstring cygwin,$(MACHTYPE)),)
inCygWin=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),netbsd)
BSDhier=1
endif
ifdef inUnix
SRCBATCHEXT=.sh
BATCHEXT=.sh
else
ifdef inOS2
SRCBATCHEXT=.cmd
BATCHEXT=.cmd
else
SRCBATCHEXT=.bat
BATCHEXT=.bat
endif
endif
ifdef inUnix
PATHSEP=/
else
PATHSEP:=$(subst /,\,/)
ifdef inCygWin
PATHSEP=/
endif
endif
ifdef PWD
BASEDIR:=$(subst \,/,$(shell $(PWD)))
@ -91,7 +84,7 @@ endif
endif
export ECHO
endif
override OS_TARGET_DEFAULT=freebsd
OS_TARGET=freebsd
override DEFAULT_FPCDIR=../..
ifndef FPC
ifdef PP
@ -113,38 +106,37 @@ endif
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
ifndef FPC_VERSION
FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
FPC_VERSION:=$(shell $(FPC) -iV)
endif
export FPC FPC_VERSION FPC_COMPILERINFO
export FPC FPC_VERSION
unexport CHECKDEPEND ALLDEPENDENCIES
ifndef CPU_TARGET
ifdef CPU_TARGET_DEFAULT
CPU_TARGET=$(CPU_TARGET_DEFAULT)
endif
endif
ifndef OS_TARGET
ifdef OS_TARGET_DEFAULT
OS_TARGET=$(OS_TARGET_DEFAULT)
endif
endif
ifneq ($(words $(FPC_COMPILERINFO)),5)
FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
endif
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
COMPILERINFO:=$(shell $(FPC) -iSP -iTP -iSO -iTO)
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
CPU_SOURCE:=$(word 1,$(COMPILERINFO))
endif
ifndef CPU_TARGET
CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
CPU_TARGET:=$(word 2,$(COMPILERINFO))
endif
ifndef OS_SOURCE
OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
OS_SOURCE:=$(word 3,$(COMPILERINFO))
endif
ifndef OS_TARGET
OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
OS_TARGET:=$(word 4,$(COMPILERINFO))
endif
else
ifndef CPU_SOURCE
CPU_SOURCE:=$(shell $(FPC) -iSP)
endif
ifndef CPU_TARGET
CPU_TARGET:=$(shell $(FPC) -iTP)
endif
ifndef OS_SOURCE
OS_SOURCE:=$(shell $(FPC) -iSO)
endif
ifndef OS_TARGET
OS_TARGET:=$(shell $(FPC) -iTO)
endif
endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
@ -156,12 +148,6 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
endif
endif
ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
@ -191,14 +177,11 @@ override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR:=$(BASEDIR)
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=c:/pp
endif
endif
endif
endif
endif
ifndef CROSSDIR
CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
endif
@ -225,13 +208,11 @@ UNIXINC=$(RTL)/unix
UNITPREFIX=rtl
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
SYSTEMUNIT=system
PRT0=prt0
override FPCOPT+=-dNOMOUSE
loaders+=gprt0
else
SYSTEMUNIT=sysbsd
override FPCOPT+=-dUNIX -dNOMOUSE
PRT0=prt0_10
endif
ifdef RELEASE
override FPCOPT+=-Ur
@ -255,12 +236,30 @@ ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
ifeq ($(OS_TARGET),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
else
ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
ifeq ($(OS_SOURCE),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
endif
ifndef INSTALL_PREFIX
@ -269,7 +268,7 @@ INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXHier
ifdef UNIXINSTALLDIR
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
@ -288,7 +287,7 @@ DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef INSTALL_BASEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
@ -299,18 +298,10 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXHier
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
ifdef UNIXINSTALLDIR
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
endif
else
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
endif
@ -329,23 +320,19 @@ endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@ -368,16 +355,12 @@ endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
@ -392,28 +375,20 @@ endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@ -435,7 +410,6 @@ endif
else
CROSSBINDIR=
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
@ -448,124 +422,6 @@ SHAREDLIBEXT=.so
STATICLIBPREFIX=libp
RSTEXT=.rst
FPCMADE=fpcmade
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
ifeq ($(OS_TARGET),go32v1)
STATICLIBPREFIX=
FPCMADE=fpcmade.v1
PACKAGESUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=go32
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.wat
ZIPSUFFIX=watc
OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
ZIPSUFFIX=openbsd
endif
ifeq ($(OS_TARGET),win32)
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.os2
ZIPSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.emx
ZIPSUFFIX=emx
ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),atari)
EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.qnx
ZIPSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
FPCMADE=fpcmade.macos
ZIPSUFFIX=macos
DEBUGSYMEXT=.xcoff
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.darwin
ZIPSUFFIX=darwin
endif
else
ifeq ($(OS_TARGET),go32v1)
PPUEXT=.pp1
OEXT=.o1
@ -582,39 +438,24 @@ STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=go32
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=watcom
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
ZIPSUFFIX=openbsd
endif
ifeq ($(OS_TARGET),win32)
PPUEXT=.ppw
OEXT=.ow
@ -626,7 +467,6 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
@ -641,7 +481,7 @@ ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
PPUEXT=.ppu
PPUEXT=.ppa
ASMEXT=.asm
OEXT=.o
SMARTEXT=.sl
@ -650,7 +490,7 @@ SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),atari)
PPUEXT=.ppu
PPUEXT=.ppt
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
@ -659,7 +499,6 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -670,7 +509,6 @@ FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -681,7 +519,6 @@ FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -693,8 +530,8 @@ ZIPSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
STATICLIBPREFIX=
PPUEXT=.ppu
OEXT=.o
PPUEXT=.ppn
OEXT=.on
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
@ -703,24 +540,12 @@ FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
EXEEXT=.nlm
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
FPCMADE=fpcmade.macos
endif
endif
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO= __missing_command__
ECHO=
else
ECHO:=$(firstword $(ECHO))
endif
@ -734,7 +559,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE= __missing_command__
DATE=
else
DATE:=$(firstword $(DATE))
endif
@ -748,7 +573,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL= __missing_command__
GINSTALL=
else
GINSTALL:=$(firstword $(GINSTALL))
endif
@ -760,7 +585,7 @@ export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG= __missing_command__
CPPROG=
else
CPPROG:=$(firstword $(CPPROG))
endif
@ -769,7 +594,7 @@ export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG= __missing_command__
RMPROG=
else
RMPROG:=$(firstword $(RMPROG))
endif
@ -778,18 +603,14 @@ export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG= __missing_command__
MVPROG=
else
MVPROG:=$(firstword $(MVPROG))
endif
endif
export MVPROG
ifndef ECHOREDIR
ifndef inUnix
ECHOREDIR=echo
else
ECHOREDIR=$(ECHO)
endif
ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
endif
ifndef COPY
COPY:=$(CPPROG) -fp
@ -827,7 +648,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE= __missing_command__
PPUMOVE=
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
@ -836,7 +657,7 @@ export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE= __missing_command__
FPCMAKE=
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
@ -845,7 +666,7 @@ export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG= __missing_command__
ZIPPROG=
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
@ -854,25 +675,21 @@ export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG= __missing_command__
TARPROG=
else
TARPROG:=$(firstword $(TARPROG))
endif
endif
export TARPROG
ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
ASNAME=as
LDNAME=ld
ARNAME=ar
RCNAME=rc
ifeq ($(OS_TARGET),win32)
ifeq ($(CROSSBINDIR),)
ASNAME=asw
LDNAME=ldw
ARNAME=arw
endif
endif
endif
ifndef ASPROG
ifdef CROSSBINDIR
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@ -905,7 +722,7 @@ AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
PPAS=ppas$(SRCBATCHEXT)
PPAS=ppas$(BATCHEXT)
ifdef inUnix
LDCONFIG=ldconfig
else
@ -950,17 +767,6 @@ endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET)
endif
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
endif
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
endif
ifdef UNITDIR
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
endif
@ -987,12 +793,8 @@ ifdef RELEASE
ifeq ($(CPU_TARGET),i386)
FPCCPUOPT:=-OG2p3
else
ifeq ($(CPU_TARGET),powerpc)
FPCCPUOPT:=-O1
else
FPCCPUOPT:=
endif
endif
override FPCOPT+=-Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
@ -1046,11 +848,6 @@ override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
endif
endif
ifeq ($(OS_TARGET),linux)
ifeq ($(FPC_VERSION),1.0.6)
override FPCOPTDEF+=HASUNIX
endif
endif
ifdef OPT
override FPCOPT+=$(OPT)
endif
@ -1069,12 +866,12 @@ override COMPILER:=$(FPC) $(FPCOPT)
ifeq (,$(findstring -s ,$(COMPILER)))
EXECPPAS=
else
ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifeq ($(OS_SOURCE),$(OS_TARGET))
EXECPPAS:=@$(PPAS)
endif
endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
ifdef TARGET_LOADERS
override ALLTARGET+=fpc_loaders
override CLEANTARGET+=fpc_loaders_clean
override INSTALLTARGET+=fpc_loaders_install
@ -1089,7 +886,7 @@ fpc_loaders_install:
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
.PHONY: fpc_units
ifneq ($(TARGET_UNITS),)
ifdef TARGET_UNITS
override ALLTARGET+=fpc_units
override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
@ -1111,7 +908,7 @@ fpc_debug:
$(MAKE) all DEBUG=1
fpc_release:
$(MAKE) all RELEASE=1
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
%$(PPUEXT): %.pp
$(COMPILER) $<
$(EXECPPAS)
@ -1124,14 +921,10 @@ fpc_release:
%$(EXEEXT): %.pas
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.dpr
$(COMPILER) $<
$(EXECPPAS)
%.res: %.rc
windres -i $< -o $@
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
ifdef INSTALL_UNITS
@ -1208,9 +1001,6 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
endif
@ -1234,7 +1024,6 @@ ifdef LIB_NAME
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
fpc_distclean: clean
ifdef COMPILER_UNITTARGETDIR
TARGETDIRCLEAN=fpc_clean
@ -1246,13 +1035,9 @@ endif
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-$(DELTREE) *$(SMARTEXT)
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *_ppas$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:
@ -1297,7 +1082,6 @@ fpc_baseinfo:
@$(ECHO) Rm........ $(RMPROG)
@$(ECHO) GInstall.. $(GINSTALL)
@$(ECHO) Echo...... $(ECHO)
@$(ECHO) Shell..... $(SHELL)
@$(ECHO) Date...... $(DATE)
@$(ECHO) FPCMake... $(FPCMAKE)
@$(ECHO) PPUMove... $(PPUMOVE)
@ -1383,8 +1167,8 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
include $(PROCINC)/makefile.cpu
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as
cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
$(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as

View File

@ -58,13 +58,11 @@ UNITPREFIX=rtl
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
SYSTEMUNIT=system
PRT0=prt0
override FPCOPT+=-dNOMOUSE
loaders+=gprt0
else
SYSTEMUNIT=sysbsd
override FPCOPT+=-dUNIX -dNOMOUSE
PRT0=prt0_10
endif
# Use new feature from 1.0.5 version
@ -109,8 +107,8 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
# Loaders
#
prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as
cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
$(AS) -o cprt0$(OEXT) $(CPU_TARGET)/cprt0.as

View File

@ -55,12 +55,12 @@ _start:
movl %edx,%edx
#NO_APP
leal 8(%ebp),%edi
movl %edi,U_SYSTEM_ARGV
movl %edi,operatingsystem_parameter_argv
mov -4(%edi),%eax
movl %eax,U_SYSTEM_ARGC
movl %eax,operatingsystem_parameter_argc
movl 4(%ebp),%ebx
leal 12(%ebp,%ebx,4),%esi
movl %esi,U_SYSTEM_ENVP
movl %esi,operatingsystem_parameter_envp
movl %esi,environ
testl %ebx,%ebx
jle .L2
@ -116,7 +116,7 @@ _start:
_haltproc:
mov $1,%eax
movzwl U_SYSTEM_EXITCODE,%ebx
movzwl operatingsystem_result,%ebx
pushl %ebx
call .Lactualsyscall
addl $4,%esp
@ -139,3 +139,8 @@ _haltproc:
.comm environ,4,4
.weak _DYNAMIC
.ident "GCC: (GNU) 2.7.2.1"
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4

View File

@ -67,12 +67,12 @@ _start:
pushl %esi
pushl %ebx
movl 4(%ebp),%ebx
movl %ebx,U_SYSTEM_ARGC
movl %ebx,operatingsystem_parameter_argc
leal 12(%ebp,%ebx,4),%esi
leal 8(%ebp),%eax
movl %eax,U_SYSTEM_ARGV
movl %eax,operatingsystem_parameter_argv
movl %eax,-4(%ebp)
movl %esi,U_SYSTEM_ENVP
movl %esi,operatingsystem_parameter_envp
movl %esi,environ
movl $_DYNAMIC,%ecx
testl %ebx,%ebx
@ -125,11 +125,11 @@ _start:
.globl _haltproc
.type _haltproc,@function
_haltproc:
movzwl U_SYSTEM_EXITCODE,%ebx
movzwl operatingsystem_result,%ebx
pushl %ebx
call exit
mov $1,%eax
movzwl U_SYSTEM_EXITCODE,%ebx
movzwl operatingsystem_result,%ebx
pushl %ebx
call .Lactualsyscall
addl $4,%esp
@ -156,3 +156,8 @@ _haltproc:
.globl _DYNAMIC
.weak _DYNAMIC
.ident "GCC: (GNU) c 2.95.4 20020320 [FreeBSD]"
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4

View File

@ -55,12 +55,12 @@ _start:
movl %edx,%edx
#NO_APP
leal 8(%ebp),%edi
movl %edi,U_SYSTEM_ARGV
movl %edi,operatingsystem_parameter_argv
mov -4(%edi),%eax
movl %eax,U_SYSTEM_ARGC
movl %eax,operatingsystem_parameter_argc
movl 4(%ebp),%ebx
leal 12(%ebp,%ebx,4),%esi
movl %esi,U_SYSTEM_ENVP
movl %esi,operatingsystem_parameter_envp
movl %esi,environ
testl %ebx,%ebx
jle .L2
@ -101,7 +101,7 @@ _start:
_haltproc:
mov $1,%eax
movzwl U_SYSTEM_EXITCODE,%ebx
movzwl operatingsystem_result,%ebx
pushl %ebx
call _actualsyscall
addl $4,%esp
@ -122,3 +122,9 @@ _actualsyscall:
.comm environ,4,4
.weak _DYNAMIC
.ident "GCC: (GNU) 2.7.2.1"
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4

View File

@ -1,124 +0,0 @@
#
# $Id$
# This file is part of the Free Pascal run time library.
# Copyright (c) 1999-2000 by Marco van de Voort, Michael Van Canneyt
# and Peter Vreman
# 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.
#
#**********************************************************************}
#
# FreeBSD standard (static) ELF startup code for Free Pascal
#
.file "prt1.as"
.version "01.01"
gcc2_compiled.:
.globl __progname
.section .rodata
.LC0:
.ascii "\0"
.data
.p2align 2
.type __progname,@object
.size __progname,4
__progname:
.long .LC0
.align 4
___fpucw:
.long 0x1332
.globl ___fpc_brk_addr /* heap management */
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
.text
.p2align 2
.globl _start
.type _start,@function
_start:
pushl %ebp
movl %esp,%ebp
pushl %edi
pushl %esi
pushl %ebx
#APP
movl %edx,%edx
#NO_APP
leal 8(%ebp),%edi
movl %edi,U_SYSBSD_ARGV
mov -4(%edi),%eax
movl %eax,U_SYSBSD_ARGC
movl 4(%ebp),%ebx
leal 12(%ebp,%ebx,4),%esi
movl %esi,U_SYSBSD_ENVP
movl %esi,environ
testl %ebx,%ebx
jle .L2
movl 8(%ebp),%eax
testl %eax,%eax
je .L2
movl %eax,__progname
cmpb $0,(%eax)
je .L2
.p2align 2,0x90
.L6:
cmpb $47,(%eax)
jne .L5
leal 1(%eax),%ecx
movl %ecx,__progname
.L5:
incl %eax
cmpb $0,(%eax)
jne .L6
.L2:
.L9:
# copied from linux
finit /* initialize fpu */
fwait
fldcw ___fpucw
xorl %ebp,%ebp
call main
pushl %eax
jmp _haltproc
.p2align 2,0x90
.globl _haltproc
.type _haltproc,@function
_haltproc:
mov $1,%eax
movzwl U_SYSBSD_EXITCODE,%ebx
pushl %ebx
call _actualsyscall
addl $4,%esp
jmp _haltproc
_actualsyscall:
int $0x80
jb .LErrorcode
xor %ebx,%ebx
ret
.LErrorcode:
mov %eax,%ebx
mov $-1,%eax
ret
.p2align 2,0x90
.Lfe1:
.size _start,.Lfe1-_start
.comm environ,4,4
.weak _DYNAMIC
.ident "GCC: (GNU) 2.7.2.1"

View File

@ -39,18 +39,18 @@ _start:
movq -8(%rbp), %rax
movl (%rax), %eax
movl %eax, -20(%rbp)
movl %eax, U_SYSTEM_ARGC
movl %eax, operatingsystem_parameter_argc
movq -8(%rbp), %rax
addq $8, %rax
movq %rax, -32(%rbp)
movq %rax, U_SYSTEM_ARGV
movq %rax, operatingsystem_parameter_argv
movl -20(%rbp), %eax
cltq
salq $3, %rax
addq -8(%rbp), %rax
addq $16, %rax
movq %rax, -40(%rbp)
movq %rax, U_SYSTEM_ENVP
movq %rax, operatingsystem_parameter_envp
movq -40(%rbp), %rax
movq %rax, environ(%rip)
movq %rax,environ

View File

@ -341,7 +341,7 @@ const
StackError : boolean = FALSE;
var
ExitCode : Word;
ExitCode : Word; public name 'operatingsystem_result';
RandSeed : Cardinal;
{ Delphi compatibility }
IsLibrary : boolean;
@ -744,7 +744,11 @@ const
{
$Log$
Revision 1.95 2004-06-11 19:21:53 florian
Revision 1.96 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.95 2004/06/11 19:21:53 florian
* fixed wrong commit
Revision 1.94 2004/06/11 13:45:33 florian

View File

@ -1,25 +1,15 @@
#
# Don't edit, this file is generated by FPCMake Version 1.1 [2004/05/23]
# Don't edit, this file is generated by FPCMake Version 1.1 [2002/05/23]
#
default: all
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) sunos qnx
FORCE:
.PHONY: FORCE
override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
ifneq ($(findstring darwin,$(OSTYPE)),)
inUnix=1 #darwin
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware
override PATH:=$(subst \,/,$(PATH))
ifeq ($(findstring ;,$(PATH)),)
inUnix=1
SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
else
SEARCHPATH:=$(subst ;, ,$(PATH))
endif
endif
SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
ifeq ($(PWD),)
PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
@ -42,26 +32,29 @@ inOS2=1
endif
endif
else
ifneq ($(findstring cygdrive,$(PATH)),)
ifneq ($(findstring cygwin,$(MACHTYPE)),)
inCygWin=1
endif
endif
ifeq ($(OS_TARGET),freebsd)
BSDhier=1
endif
ifeq ($(OS_TARGET),netbsd)
BSDhier=1
endif
ifdef inUnix
SRCBATCHEXT=.sh
BATCHEXT=.sh
else
ifdef inOS2
SRCBATCHEXT=.cmd
BATCHEXT=.cmd
else
SRCBATCHEXT=.bat
BATCHEXT=.bat
endif
endif
ifdef inUnix
PATHSEP=/
else
PATHSEP:=$(subst /,\,/)
ifdef inCygWin
PATHSEP=/
endif
endif
ifdef PWD
BASEDIR:=$(subst \,/,$(shell $(PWD)))
@ -91,7 +84,7 @@ endif
endif
export ECHO
endif
override OS_TARGET_DEFAULT=linux
OS_TARGET=linux
override DEFAULT_FPCDIR=../..
ifndef FPC
ifdef PP
@ -113,38 +106,37 @@ endif
override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
ifndef FPC_VERSION
FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
FPC_VERSION:=$(shell $(FPC) -iV)
endif
export FPC FPC_VERSION FPC_COMPILERINFO
export FPC FPC_VERSION
unexport CHECKDEPEND ALLDEPENDENCIES
ifndef CPU_TARGET
ifdef CPU_TARGET_DEFAULT
CPU_TARGET=$(CPU_TARGET_DEFAULT)
endif
endif
ifndef OS_TARGET
ifdef OS_TARGET_DEFAULT
OS_TARGET=$(OS_TARGET_DEFAULT)
endif
endif
ifneq ($(words $(FPC_COMPILERINFO)),5)
FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
endif
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
COMPILERINFO:=$(shell $(FPC) -iSP -iTP -iSO -iTO)
ifndef CPU_SOURCE
CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
CPU_SOURCE:=$(word 1,$(COMPILERINFO))
endif
ifndef CPU_TARGET
CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
CPU_TARGET:=$(word 2,$(COMPILERINFO))
endif
ifndef OS_SOURCE
OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
OS_SOURCE:=$(word 3,$(COMPILERINFO))
endif
ifndef OS_TARGET
OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
OS_TARGET:=$(word 4,$(COMPILERINFO))
endif
else
ifndef CPU_SOURCE
CPU_SOURCE:=$(shell $(FPC) -iSP)
endif
ifndef CPU_TARGET
CPU_TARGET:=$(shell $(FPC) -iTP)
endif
ifndef OS_SOURCE
OS_SOURCE:=$(shell $(FPC) -iSO)
endif
ifndef OS_TARGET
OS_TARGET:=$(shell $(FPC) -iTO)
endif
endif
FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
@ -156,12 +148,6 @@ ifeq ($(findstring $(OS_TARGET),$(MAKEFILETARGETS)),)
$(error The Makefile doesn't support target $(OS_TARGET), please run fpcmake first)
endif
endif
ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
BSDhier=1
endif
ifeq ($(OS_TARGET),linux)
linuxHier=1
endif
export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE CROSSCOMPILE
ifdef FPCDIR
override FPCDIR:=$(subst \,/,$(FPCDIR))
@ -191,14 +177,11 @@ override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR:=$(FPCDIR)/..
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR:=$(BASEDIR)
ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
override FPCDIR=c:/pp
endif
endif
endif
endif
endif
ifndef CROSSDIR
CROSSDIR:=$(FPCDIR)/cross/$(FULL_TARGET)
endif
@ -233,12 +216,10 @@ ifeq ($(CPU_TARGET),i386)
CPU_UNITS+=oldlinux
endif
LINUXUNIT2=linux
PRT0=prt0
else
SYSTEMUNIT=syslinux
LINUXUNIT1=linux
LINUXUNIT2=
PRT0=prt0_10
override FPCOPT+=-dUNIX
endif
ifdef RELEASE
@ -264,12 +245,30 @@ ifdef REQUIRE_PACKAGESDIR
override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
endif
ifdef ZIPINSTALL
ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
UNIXHier=1
ifeq ($(OS_TARGET),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
else
ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
UNIXHier=1
ifeq ($(OS_SOURCE),linux)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),freebsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_SOURCE),netbsd)
UNIXINSTALLDIR=1
endif
ifeq ($(OS_TARGET),sunos)
UNIXINSTALLDIR=1
endif
endif
ifndef INSTALL_PREFIX
@ -278,7 +277,7 @@ INSTALL_PREFIX=$(PREFIX)
endif
endif
ifndef INSTALL_PREFIX
ifdef UNIXHier
ifdef UNIXINSTALLDIR
INSTALL_PREFIX=/usr/local
else
ifdef INSTALL_FPCPACKAGE
@ -297,7 +296,7 @@ DIST_DESTDIR:=$(BASEDIR)
endif
export DIST_DESTDIR
ifndef INSTALL_BASEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
else
@ -308,18 +307,10 @@ INSTALL_BASEDIR:=$(INSTALL_PREFIX)
endif
endif
ifndef INSTALL_BINDIR
ifdef UNIXHier
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
ifdef UNIXINSTALLDIR
INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
endif
else
ifdef CROSSCOMPILE
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/cross/$(FULL_TARGET)/bin
else
INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(OS_TARGET)
endif
@ -338,23 +329,19 @@ endif
endif
endif
ifndef INSTALL_LIBDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
else
INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
endif
endif
ifndef INSTALL_SOURCEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef BSDhier
SRCPREFIXDIR=share/src
else
ifdef linuxHier
SRCPREFIXDIR=share/src
else
SRCPREFIXDIR=src
endif
endif
ifdef INSTALL_FPCPACKAGE
ifdef INSTALL_FPCSUBDIR
INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
@ -377,16 +364,12 @@ endif
endif
endif
ifndef INSTALL_DOCDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef BSDhier
DOCPREFIXDIR=share/doc
else
ifdef linuxHier
DOCPREFIXDIR=share/doc
else
DOCPREFIXDIR=doc
endif
endif
ifdef INSTALL_FPCPACKAGE
INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
@ -401,28 +384,20 @@ endif
endif
endif
ifndef INSTALL_EXAMPLEDIR
ifdef UNIXHier
ifdef UNIXINSTALLDIR
ifdef INSTALL_FPCPACKAGE
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
endif
endif
else
ifdef BSDhier
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
ifdef linuxHier
INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
else
INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
endif
endif
endif
else
ifdef INSTALL_FPCPACKAGE
INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
@ -444,7 +419,6 @@ endif
else
CROSSBINDIR=
endif
BATCHEXT=.bat
LOADEREXT=.as
EXEEXT=.exe
PPLEXT=.ppl
@ -457,124 +431,6 @@ SHAREDLIBEXT=.so
STATICLIBPREFIX=libp
RSTEXT=.rst
FPCMADE=fpcmade
ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
ifeq ($(OS_TARGET),go32v1)
STATICLIBPREFIX=
FPCMADE=fpcmade.v1
PACKAGESUFFIX=v1
endif
ifeq ($(OS_TARGET),go32v2)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=go32
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.wat
ZIPSUFFIX=watc
OEXT=.obj
ASMEXT=.asm
SHAREDLIBEXT=.dll
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
ZIPSUFFIX=openbsd
endif
ifeq ($(OS_TARGET),win32)
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.os2
ZIPSUFFIX=os2
ECHO=echo
endif
ifeq ($(OS_TARGET),emx)
BATCHEXT=.cmd
AOUTEXT=.out
STATICLIBPREFIX=
SHAREDLIBEXT=.dll
FPCMADE=fpcmade.emx
ZIPSUFFIX=emx
ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),atari)
EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
EXEEXT=
FPCMADE=fpcmade.qnx
ZIPSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
EXEEXT=.nlm
STATICLIBPREFIX=
FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
EXEEXT=
FPCMADE=fpcmade.macos
ZIPSUFFIX=macos
DEBUGSYMEXT=.xcoff
endif
ifeq ($(OS_TARGET),darwin)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.darwin
ZIPSUFFIX=darwin
endif
else
ifeq ($(OS_TARGET),go32v1)
PPUEXT=.pp1
OEXT=.o1
@ -591,39 +447,24 @@ STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=go32
endif
ifeq ($(OS_TARGET),watcom)
STATICLIBPREFIX=
FPCMADE=fpcmade.dos
ZIPSUFFIX=watcom
endif
ifeq ($(OS_TARGET),linux)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.lnx
ZIPSUFFIX=linux
endif
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.freebsd
ZIPSUFFIX=freebsd
endif
ifeq ($(OS_TARGET),netbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.netbsd
ZIPSUFFIX=netbsd
endif
ifeq ($(OS_TARGET),openbsd)
BATCHEXT=.sh
EXEEXT=
HASSHAREDLIB=1
FPCMADE=fpcmade.openbsd
ZIPSUFFIX=openbsd
endif
ifeq ($(OS_TARGET),win32)
PPUEXT=.ppw
OEXT=.ow
@ -635,7 +476,6 @@ FPCMADE=fpcmade.w32
ZIPSUFFIX=w32
endif
ifeq ($(OS_TARGET),os2)
BATCHEXT=.cmd
PPUEXT=.ppo
ASMEXT=.so2
OEXT=.oo2
@ -650,7 +490,7 @@ ECHO=echo
endif
ifeq ($(OS_TARGET),amiga)
EXEEXT=
PPUEXT=.ppu
PPUEXT=.ppa
ASMEXT=.asm
OEXT=.o
SMARTEXT=.sl
@ -659,7 +499,7 @@ SHAREDLIBEXT=.library
FPCMADE=fpcmade.amg
endif
ifeq ($(OS_TARGET),atari)
PPUEXT=.ppu
PPUEXT=.ppt
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
@ -668,7 +508,6 @@ EXEEXT=.ttp
FPCMADE=fpcmade.ata
endif
ifeq ($(OS_TARGET),beos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -679,7 +518,6 @@ FPCMADE=fpcmade.be
ZIPSUFFIX=be
endif
ifeq ($(OS_TARGET),sunos)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -690,7 +528,6 @@ FPCMADE=fpcmade.sun
ZIPSUFFIX=sun
endif
ifeq ($(OS_TARGET),qnx)
BATCHEXT=.sh
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
@ -702,8 +539,8 @@ ZIPSUFFIX=qnx
endif
ifeq ($(OS_TARGET),netware)
STATICLIBPREFIX=
PPUEXT=.ppu
OEXT=.o
PPUEXT=.ppn
OEXT=.on
ASMEXT=.s
SMARTEXT=.sl
STATICLIBEXT=.a
@ -712,24 +549,12 @@ FPCMADE=fpcmade.nw
ZIPSUFFIX=nw
EXEEXT=.nlm
endif
ifeq ($(OS_TARGET),macos)
BATCHEXT=
PPUEXT=.ppu
ASMEXT=.s
OEXT=.o
SMARTEXT=.sl
STATICLIBEXT=.a
EXEEXT=
DEBUGSYMEXT=.xcoff
FPCMADE=fpcmade.macos
endif
endif
ifndef ECHO
ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ECHO),)
ECHO= __missing_command__
ECHO=
else
ECHO:=$(firstword $(ECHO))
endif
@ -743,7 +568,7 @@ DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(DATE),)
DATE= __missing_command__
DATE=
else
DATE:=$(firstword $(DATE))
endif
@ -757,7 +582,7 @@ GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(GINSTALL),)
GINSTALL= __missing_command__
GINSTALL=
else
GINSTALL:=$(firstword $(GINSTALL))
endif
@ -769,7 +594,7 @@ export GINSTALL
ifndef CPPROG
CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(CPPROG),)
CPPROG= __missing_command__
CPPROG=
else
CPPROG:=$(firstword $(CPPROG))
endif
@ -778,7 +603,7 @@ export CPPROG
ifndef RMPROG
RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(RMPROG),)
RMPROG= __missing_command__
RMPROG=
else
RMPROG:=$(firstword $(RMPROG))
endif
@ -787,18 +612,14 @@ export RMPROG
ifndef MVPROG
MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(MVPROG),)
MVPROG= __missing_command__
MVPROG=
else
MVPROG:=$(firstword $(MVPROG))
endif
endif
export MVPROG
ifndef ECHOREDIR
ifndef inUnix
ECHOREDIR=echo
else
ECHOREDIR=$(ECHO)
endif
ECHOREDIR:=$(subst /,$(PATHSEP),$(ECHO))
endif
ifndef COPY
COPY:=$(CPPROG) -fp
@ -836,7 +657,7 @@ export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
ifndef PPUMOVE
PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(PPUMOVE),)
PPUMOVE= __missing_command__
PPUMOVE=
else
PPUMOVE:=$(firstword $(PPUMOVE))
endif
@ -845,7 +666,7 @@ export PPUMOVE
ifndef FPCMAKE
FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(FPCMAKE),)
FPCMAKE= __missing_command__
FPCMAKE=
else
FPCMAKE:=$(firstword $(FPCMAKE))
endif
@ -854,7 +675,7 @@ export FPCMAKE
ifndef ZIPPROG
ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(ZIPPROG),)
ZIPPROG= __missing_command__
ZIPPROG=
else
ZIPPROG:=$(firstword $(ZIPPROG))
endif
@ -863,25 +684,21 @@ export ZIPPROG
ifndef TARPROG
TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
ifeq ($(TARPROG),)
TARPROG= __missing_command__
TARPROG=
else
TARPROG:=$(firstword $(TARPROG))
endif
endif
export TARPROG
ASNAME=$(BINUTILSPREFIX)as
LDNAME=$(BINUTILSPREFIX)ld
ARNAME=$(BINUTILSPREFIX)ar
RCNAME=$(BINUTILSPREFIX)rc
ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
ASNAME=as
LDNAME=ld
ARNAME=ar
RCNAME=rc
ifeq ($(OS_TARGET),win32)
ifeq ($(CROSSBINDIR),)
ASNAME=asw
LDNAME=ldw
ARNAME=arw
endif
endif
endif
ifndef ASPROG
ifdef CROSSBINDIR
ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
@ -914,7 +731,7 @@ AS=$(ASPROG)
LD=$(LDPROG)
RC=$(RCPROG)
AR=$(ARPROG)
PPAS=ppas$(SRCBATCHEXT)
PPAS=ppas$(BATCHEXT)
ifdef inUnix
LDCONFIG=ldconfig
else
@ -959,17 +776,6 @@ endif
ifneq ($(OS_TARGET),$(OS_SOURCE))
override FPCOPT+=-T$(OS_TARGET)
endif
ifeq ($(OS_SOURCE),openbsd)
override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
endif
ifndef CROSSBOOTSTRAP
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
endif
ifneq ($(BINUTILSPREFIX),)
override FPCOPT+=-Xr$(RLINKPATH)
endif
endif
ifdef UNITDIR
override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
endif
@ -996,12 +802,8 @@ ifdef RELEASE
ifeq ($(CPU_TARGET),i386)
FPCCPUOPT:=-OG2p3
else
ifeq ($(CPU_TARGET),powerpc)
FPCCPUOPT:=-O1
else
FPCCPUOPT:=
endif
endif
override FPCOPT+=-Xs $(FPCCPUOPT) -n
override FPCOPTDEF+=RELEASE
endif
@ -1055,11 +857,6 @@ override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
endif
endif
ifeq ($(OS_TARGET),linux)
ifeq ($(FPC_VERSION),1.0.6)
override FPCOPTDEF+=HASUNIX
endif
endif
ifdef OPT
override FPCOPT+=$(OPT)
endif
@ -1078,12 +875,12 @@ override COMPILER:=$(FPC) $(FPCOPT)
ifeq (,$(findstring -s ,$(COMPILER)))
EXECPPAS=
else
ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifeq ($(OS_SOURCE),$(OS_TARGET))
EXECPPAS:=@$(PPAS)
endif
endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
ifdef TARGET_LOADERS
override ALLTARGET+=fpc_loaders
override CLEANTARGET+=fpc_loaders_clean
override INSTALLTARGET+=fpc_loaders_install
@ -1098,7 +895,7 @@ fpc_loaders_install:
$(MKDIR) $(INSTALL_UNITDIR)
$(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)
.PHONY: fpc_units
ifneq ($(TARGET_UNITS),)
ifdef TARGET_UNITS
override ALLTARGET+=fpc_units
override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
@ -1120,7 +917,7 @@ fpc_debug:
$(MAKE) all DEBUG=1
fpc_release:
$(MAKE) all RELEASE=1
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .dpr .pp .rc .res
.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .pp .rc .res
%$(PPUEXT): %.pp
$(COMPILER) $<
$(EXECPPAS)
@ -1133,14 +930,10 @@ fpc_release:
%$(EXEEXT): %.pas
$(COMPILER) $<
$(EXECPPAS)
%$(EXEEXT): %.dpr
$(COMPILER) $<
$(EXECPPAS)
%.res: %.rc
windres -i $< -o $@
vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
ifdef INSTALL_UNITS
@ -1217,9 +1010,6 @@ override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
ifdef CLEANPPUFILES
override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
ifdef DEBUGSYMEXT
override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
endif
override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
endif
@ -1243,7 +1033,6 @@ ifdef LIB_NAME
-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
endif
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
fpc_distclean: clean
ifdef COMPILER_UNITTARGETDIR
TARGETDIRCLEAN=fpc_clean
@ -1255,13 +1044,9 @@ endif
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-$(DELTREE) *$(SMARTEXT)
-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-$(DEL) *_ppas$(BATCHEXT)
ifdef AOUTEXT
-$(DEL) *$(AOUTEXT)
endif
ifdef DEBUGSYMEXT
-$(DEL) *$(DEBUGSYMEXT)
endif
.PHONY: fpc_baseinfo
override INFORULES+=fpc_baseinfo
fpc_baseinfo:
@ -1306,7 +1091,6 @@ fpc_baseinfo:
@$(ECHO) Rm........ $(RMPROG)
@$(ECHO) GInstall.. $(GINSTALL)
@$(ECHO) Echo...... $(ECHO)
@$(ECHO) Shell..... $(SHELL)
@$(ECHO) Date...... $(DATE)
@$(ECHO) FPCMake... $(FPCMAKE)
@$(ECHO) PPUMove... $(PPUMOVE)
@ -1392,8 +1176,8 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
include $(PROCINC)/makefile.cpu
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as
dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
$(AS) -o dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as

View File

@ -69,12 +69,10 @@ ifeq ($(CPU_TARGET),i386)
CPU_UNITS+=oldlinux
endif
LINUXUNIT2=linux
PRT0=prt0
else
SYSTEMUNIT=syslinux
LINUXUNIT1=linux
LINUXUNIT2=
PRT0=prt0_10
override FPCOPT+=-dUNIX
endif
@ -119,8 +117,8 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
# Loaders
#
prt0$(OEXT) : $(CPU_TARGET)/$(PRT0).as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/$(PRT0).as
prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o prt0$(OEXT) $(CPU_TARGET)/prt0.as
dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
$(AS) -o dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as

View File

@ -50,14 +50,14 @@ _start:
ldmia sp!, {a2}
/* Pop argc off the stack and save a pointer to argv */
ldr ip,=U_SYSTEM_ARGC
ldr a3,=U_SYSTEM_ARGV
ldr ip,=operatingsystem_parameter_argc
ldr a3,=operatingsystem_parameter_argv
str a2,[ip]
/* calc envp */
add a2,a2,#1
add a2,sp,a2,LSL #2
ldr ip,=U_SYSTEM_ENVP
ldr ip,=operatingsystem_parameter_envp
str sp,[a3]
str a2,[ip]
@ -68,7 +68,7 @@ _start:
.globl _haltproc
.type _haltproc,#function
_haltproc:
ldr r0,=U_SYSTEM_EXITCODE
ldr r0,=operatingsystem_result
ldrb r0,[r0]
swi 0x900001
b _haltproc
@ -81,6 +81,11 @@ __data_start:
.weak data_start
data_start = __data_start
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
.section ".comment"
.byte 0
.ascii "generated by FPC http://www.freepascal.org\0"
@ -101,7 +106,11 @@ __data_start:
/*
$Log$
Revision 1.3 2004-03-11 22:39:53 florian
Revision 1.4 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.3 2004/03/11 22:39:53 florian
* arm startup code fixed
* made some generic math code more readable

View File

@ -14,25 +14,39 @@
#**********************************************************************}
#
# Linux ELF startup code for Free Pascal
#
#
# Stack layout at program start:
#
# nil
# envn
# ....
# .... ENVIRONMENT VARIABLES
# env1
# env0
# nil
# argn
# ....
# .... COMMAND LINE OPTIONS
# arg1
# arg0
# argc <--- esp
#
.file "prt1.as"
.file "cprt0.as"
.text
.globl _start
.type _start,@function
_start:
/* First locate the start of the environment variables */
popl %ecx
movl %esp,%ebx /* Points to the arguments */
movl %ecx,%eax
incl %eax
shll $2,%eax
addl %esp,%eax
popl %ecx /* Get argc in ecx */
movl %esp,%ebx /* Esp now points to the arguments */
leal 4(%esp,%ecx,4),%eax /* The start of the environment is: esp+4*eax+8 */
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSTEM_ENVP /* Move the environment pointer */
movl %ecx,U_SYSTEM_ARGC /* Move the argument counter */
movl %ebx,U_SYSTEM_ARGV /* Move the argument pointer */
movl %eax,operatingsystem_parameter_envp /* Move the environment pointer */
movl %ecx,operatingsystem_parameter_argc /* Move the argument counter */
movl %ebx,operatingsystem_parameter_argv /* Move the argument pointer */
movl %eax,__environ /* libc environ */
@ -44,10 +58,10 @@ _start:
movzwl __fpu_control,%eax
pushl %eax
call __setfpucw
addl $4,%esp
popl %eax
pushl $_fini
call atexit
addl $4,%esp
popl %eax
call _init
popl %eax
@ -59,30 +73,32 @@ _start:
.globl _haltproc
.type _haltproc,@function
_haltproc:
xorl %ebx,%ebx /* load and save exitcode */
movw U_SYSTEM_EXITCODE,%bx
pushl %ebx
call exit /* call libc exit, this will */
/* write the gmon.out */
movl $1,%eax /* exit call */
popl %ebx
_haltproc2: # GAS <= 2.15 bug: generates larger jump if a label is exported
movzwl operatingsystem_result,%ebx
pushl %ebx
call exit
xorl %eax,%eax
incl %eax /* eax=1, exit call */
popl %ebx
int $0x80
jmp _haltproc
jmp _haltproc2
.data
.align 4
.globl ___fpc_brk_addr /* heap management */
.bss
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
.comm ___fpc_brk_addr,4 /* heap management */
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.3 2002-09-07 16:01:20 peter
# Revision 1.4 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.3 2002/09/07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -14,6 +14,22 @@
#**********************************************************************}
#
# Linux ELF startup code for Free Pascal
#
# Stack layout at program start:
#
# nil
# envn
# ....
# .... ENVIRONMENT VARIABLES
# env1
# env0
# nil
# argn
# ....
# .... COMMAND LINE OPTIONS
# arg1
# arg0
# argc <--- esp
#
.file "prt1.as"
@ -22,6 +38,7 @@
.type _start,@function
_start:
/* First locate the start of the environment variables */
popl %esi
movl %eax,%edi
@ -32,9 +49,9 @@ _start:
addl %esp,%eax
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSTEM_ENVP /* Move the environment pointer */
movl %esi,U_SYSTEM_ARGC /* Move the argument counter */
movl %ebx,U_SYSTEM_ARGV /* Move the argument pointer */
movl %eax,operatingsystem_parameter_envp /* Move the environment pointer */
movl %esi,operatingsystem_parameter_argc /* Move the argument counter */
movl %ebx,operatingsystem_parameter_argv /* Move the argument pointer */
xorl %ebp,%ebp
pushl %edi
@ -65,8 +82,7 @@ main:
.globl _haltproc
.type _haltproc,@function
_haltproc:
xorl %eax,%eax /* load and save exitcode */
movw U_SYSTEM_EXITCODE,%ax
movzwl operatingsystem_result,%eax
movl ___fpc_ret,%edx /* return to libc */
movl ___fpc_ret_ebp,%ebp
@ -79,12 +95,6 @@ _fini_dummy:
.data
.align 4
.globl ___fpc_brk_addr /* heap management */
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
___fpc_ret: /* return address to libc */
.long 0
___fpc_ret_ebx:
@ -92,9 +102,21 @@ ___fpc_ret_ebx:
___fpc_ret_ebp:
.long 0
.bss
.type ___fpc_brk_addr,@object
.comm ___fpc_brk_addr,4 /* heap management */
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.5 2002-09-07 16:01:20 peter
# Revision 1.6 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.5 2002/09/07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -30,9 +30,9 @@ FPC_LIB_START:
movl 12(%ebp),%ecx
movl 16(%ebp),%edx
movl %eax,U_SYSTEM_ARGC /* Move the argument counter */
movl %ecx,U_SYSTEM_ARGV /* Move the argument pointer */
movl %edx,U_SYSTEM_ENVP /* Move the environment pointer */
movl %edx,operatingsystem_parameter_envp /* Move the environment pointer */
movl %eax,operatingsystem_parameter_argc /* Move the argument counter */
movl %ecx,operatingsystem_parameter_argv /* Move the argument pointer */
movb $1,U_SYSTEM_ISLIBRARY
@ -44,14 +44,24 @@ FPC_LIB_START:
.globl _haltproc
.type _haltproc,@function
_haltproc:
movl $1,%eax /* exit call */
xorl %ebx,%ebx
movw U_SYSTEM_EXITCODE,%bx
_haltproc2: # GAS <= 2.15 bug: generates larger jump if a label is exported
xorl %eax,%eax
incl %eax /* eax=1, exit call */
movzwl operatingsystem_result,%ebx
int $0x80
jmp _haltproc
jmp _haltproc2
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.2 2002-09-07 16:01:20 peter
# Revision 1.3 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.2 2002/09/07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -31,9 +31,9 @@ _start:
addl %esp,%eax
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSTEM_ENVP /* Move the environment pointer */
movl %ecx,U_SYSTEM_ARGC /* Move the argument counter */
movl %ebx,U_SYSTEM_ARGV /* Move the argument pointer */
movl %eax,operatingsystem_parameter_envp /* Move the environment pointer */
movl %ecx,operatingsystem_parameter_argc /* Move the argument counter */
movl %ebx,operatingsystem_parameter_argv /* Move the argument pointer */
finit /* initialize fpu */
fwait
@ -53,31 +53,35 @@ _start:
.globl _haltproc
.type _haltproc,@function
_haltproc:
xorl %ebx,%ebx /* load and save exitcode */
movw U_SYSTEM_EXITCODE,%bx
_haltproc2: # GAS <= 2.15 bug: generates larger jump if a label is exported
movzwl operatingsystem_result,%ebx
pushl %ebx
call exit /* call libc exit, this will */
/* write the gmon.out */
movl $1,%eax /* exit call */
xorl %eax,%eax
incl %eax /* eax=1, exit call */
popl %ebx
int $0x80
jmp _haltproc
jmp _haltproc2
.data
.align 4
___fpucw:
.long 0x1332
.globl ___fpc_brk_addr /* heap management */
.bss
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
.comm ___fpc_brk_addr,4 /* heap management */
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.3 2002-09-07 16:01:20 peter
# Revision 1.4 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.3 2002/09/07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -32,9 +32,9 @@ _start:
addl %esp,%eax
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSTEM_ENVP /* Move the environment pointer */
movl %esi,U_SYSTEM_ARGC /* Move the argument counter */
movl %ebx,U_SYSTEM_ARGV /* Move the argument pointer */
movl %eax,operatingsystem_parameter_envp /* Move the environment pointer */
movl %esi,operatingsystem_parameter_argc /* Move the argument counter */
movl %ebx,operatingsystem_parameter_argv /* Move the argument pointer */
movl %edi,%eax
xorl %ebp,%ebp
@ -68,8 +68,7 @@ cmain:
.globl _haltproc
.type _haltproc,@function
_haltproc:
xorl %eax,%eax /* load and save exitcode */
movw U_SYSTEM_EXITCODE,%ax
movzwl operatingsystem_result,%eax
movl ___fpc_ret,%edx /* return to libc */
movl ___fpc_ret_ebx,%ebx
@ -105,12 +104,6 @@ __gmon_start__:
.data
.align 4
.globl ___fpc_brk_addr /* heap management */
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
___fpc_ret: /* return address to libc */
.long 0
___fpc_ret_ebx:
@ -123,9 +116,21 @@ ___fpc_ret_edi:
.bss
.lcomm __monstarted,4
.type ___fpc_brk_addr,@object
.comm ___fpc_brk_addr,4 /* heap management */
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.5 2004-03-10 20:38:59 peter
# Revision 1.6 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.5 2004/03/10 20:38:59 peter
# * only i386 needs cprt21 to link with glibc 2.1+
#
# Revision 1.4 2002/09/07 16:01:20 peter

View File

@ -1,8 +1,8 @@
#
# $Id$
# This file is part of the Free Pascal run time library.
# Copyright (c) 1999-2000 by Michael Van Canneyt and Peter Vreman
# members of the Free Pascal development team.
# Copyright (c) 1999-2004 by Michael Van Canneyt, Peter Vreman,
# & Daniel Mantione, members of the Free Pascal development team.
#
# See the file COPYING.FPC, included in this distribution,
# for details about the copyright.
@ -14,27 +14,45 @@
#**********************************************************************}
#
# Linux ELF startup code for Free Pascal
#
#
# Stack layout at program start:
#
# nil
# envn
# ....
# .... ENVIRONMENT VARIABLES
# env1
# env0
# nil
# argn
# ....
# .... COMMAND LINE OPTIONS
# arg1
# arg0
# argc <--- esp
#
.file "prt1.as"
.file "prt0.as"
.text
.globl _start
.type _start,@function
_start:
/* First locate the start of the environment variables */
popl %ecx
movl %esp,%ebx /* Points to the arguments */
movl %ecx,%eax
incl %eax
shll $2,%eax
addl %esp,%eax
popl %ecx /* Get argc in ecx */
movl %esp,%ebx /* Esp now points to the arguments */
leal 4(%esp,%ecx,4),%eax /* The start of the environment is: esp+4*eax+8 */
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSTEM_ENVP /* Move the environment pointer */
movl %ecx,U_SYSTEM_ARGC /* Move the argument counter */
movl %ebx,U_SYSTEM_ARGV /* Move the argument pointer */
leal operatingsystem_parameters,%edi
stosl /* Move the environment pointer */
xchg %ecx,%eax
stosl /* Move the argument counter */
xchg %ebx,%eax
stosl /* Move the argument pointer */
finit /* initialize fpu */
fninit /* initialize fpu */
fwait
fldcw ___fpucw
@ -44,25 +62,37 @@ _start:
.globl _haltproc
.type _haltproc,@function
_haltproc:
movl $1,%eax /* exit call */
xorl %ebx,%ebx
movw U_SYSTEM_EXITCODE,%bx
_haltproc2: # GAS <= 2.15 bug: generates larger jump if a label is exported
xorl %eax,%eax
incl %eax /* eax=1, exit call */
movzwl operatingsystem_result,%ebx
int $0x80
jmp _haltproc
jmp _haltproc2
.data
.align 4
___fpucw:
.long 0x1332
.globl ___fpc_brk_addr /* heap management */
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
.bss
.type ___fpc_brk_addr,@object
.comm ___fpc_brk_addr,4 /* heap management */
operatingsystem_parameters:
.skip 3*4
.global operatingsystem_parameter_envp
.global operatingsystem_parameter_argc
.global operatingsystem_parameter_argv
.set operatingsystem_parameter_envp,operatingsystem_parameters+0
.set operatingsystem_parameter_argc,operatingsystem_parameters+4
.set operatingsystem_parameter_argv,operatingsystem_parameters+8
#
# $Log$
# Revision 1.3 2002-09-07 16:01:20 peter
# Revision 1.4 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.3 2002/09/07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -1,68 +0,0 @@
#
# $Id$
# This file is part of the Free Pascal run time library.
# Copyright (c) 1999-2000 by Michael Van Canneyt and Peter Vreman
# 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.
#
#**********************************************************************}
#
# Linux ELF startup code for Free Pascal
#
.file "prt1.as"
.text
.globl _start
.type _start,@function
_start:
/* First locate the start of the environment variables */
popl %ecx
movl %esp,%ebx /* Points to the arguments */
movl %ecx,%eax
incl %eax
shll $2,%eax
addl %esp,%eax
andl $0xfffffff8,%esp /* Align stack */
movl %eax,U_SYSLINUX_ENVP /* Move the environment pointer */
movl %ecx,U_SYSLINUX_ARGC /* Move the argument counter */
movl %ebx,U_SYSLINUX_ARGV /* Move the argument pointer */
finit /* initialize fpu */
fwait
fldcw ___fpucw
xorl %ebp,%ebp
call PASCALMAIN
.globl _haltproc
.type _haltproc,@function
_haltproc:
movl $1,%eax /* exit call */
xorl %ebx,%ebx
movw U_SYSLINUX_EXITCODE,%bx
int $0x80
jmp _haltproc
.data
.align 4
___fpucw:
.long 0x1332
.globl ___fpc_brk_addr /* heap management */
.type ___fpc_brk_addr,@object
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
#
# $Log$
# Revision 1.3 2002-09-07 16:01:20 peter
# * old logs removed and tabs fixed
#

View File

@ -31,14 +31,14 @@ _start:
mtlr 0
stw 0,0(1)
lis 11,U_SYSTEM_ARGC@ha
stw 3,U_SYSTEM_ARGC@l(11);
lis 11,operatingsystem_parameter_argc@ha
stw 3,operatingsystem_parameter_argc@l(11);
lis 11,U_SYSTEM_ARGV@ha
stw 4,U_SYSTEM_ARGV@l(11);
lis 11,operatingsystem_parameter_argc@ha
stw 4,operatingsystem_parameter_argc@l(11);
lis 11,U_SYSTEM_ENVP@ha
stw 5,U_SYSTEM_ENVP@l(11);
lis 11,operatingsystem_parameter_envp@ha
stw 5,operatingsystem_parameter_envp@l(11);
/* init libc, parameters are already setup at this point */
bl __libc_init_first
@ -52,8 +52,8 @@ _start:
.type _haltproc,@function
_haltproc:
li 0,1 /* exit call */
lis 3,U_SYSTEM_EXITCODE@h
stw 3,U_SYSTEM_EXITCODE@l(3)
lis 3,operatingsystem_result@h
stw 3,operatingsystem_result@l(3)
sc
b _haltproc
@ -68,9 +68,18 @@ data_start:
___fpc_brk_addr:
.long 0
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
/*
$Log$
Revision 1.6 2004-01-04 17:28:03 florian
Revision 1.7 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.6 2004/01/04 17:28:03 florian
* clean up
Revision 1.5 2004/01/04 17:12:28 florian

View File

@ -31,18 +31,18 @@ _start:
mtlr 0
stw 0,0(1)
lwz 3,0(26) /* get argc */
lis 11,U_SYSTEM_ARGC@ha
stw 3,U_SYSTEM_ARGC@l(11);
lis 11,operatingsystem_parameter_argc@ha
stw 3,operatingsystem_parameter_argc@l(11);
addi 4,26,4 /* get argv */
lis 11,U_SYSTEM_ARGV@ha
stw 4,U_SYSTEM_ARGV@l(11);
lis 11,operatingsystem_parameter_argv@ha
stw 4,operatingsystem_parameter_argv@l(11);
addi 27,3,1 /* calculate argc + 1 into r27 */
slwi 27,27,2 /* calculate (argc + 1) * sizeof(char *) into r27 */
add 5,4,27 /* get address of env[0] */
lis 11,U_SYSTEM_ENVP@ha
stw 5,U_SYSTEM_ENVP@l(11);
lis 11,operatingsystem_parameter_envp@ha
stw 5,operatingsystem_parameter_envp@l(11);
bl PASCALMAIN
@ -65,9 +65,18 @@ data_start:
.size ___fpc_brk_addr,4
___fpc_brk_addr:
.long 0
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
/*
$Log$
Revision 1.12 2004-05-26 20:48:17 florian
Revision 1.13 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.12 2004/05/26 20:48:17 florian
* _haltproc fixed
Revision 1.11 2004/01/04 17:23:57 florian

View File

@ -33,21 +33,21 @@ _start:
/* Extract the arguments and environment as encoded on the stack. The
argument info starts after one register window (16 words) past the SP. */
ld [%sp+22*4], %o2
sethi %hi(U_SYSTEM_ARGC),%o1
or %o1,%lo(U_SYSTEM_ARGC),%o1
sethi %hi(operatingsystem_parameter_argc),%o1
or %o1,%lo(operatingsystem_parameter_argc),%o1
st %o2, [%o1]
add %sp, 23*4, %o0
sethi %hi(U_SYSTEM_ARGV),%o1
or %o1,%lo(U_SYSTEM_ARGV),%o1
sethi %hi(operatingsystem_parameter_argv),%o1
or %o1,%lo(operatingsystem_parameter_argv),%o1
st %o0, [%o1]
/* envp=(argc+1)*4+argv */
inc %o2
sll %o2, 2, %o2
add %o2, %o0, %o2
sethi %hi(U_SYSTEM_ENVP),%o1
or %o1,%lo(U_SYSTEM_ENVP),%o1
sethi %hi(operatingsystem_parameter_envp),%o1
or %o1,%lo(operatingsystem_parameter_envp),%o1
st %o2, [%o1]
/* Call the user program entry point. */
@ -68,9 +68,18 @@ _haltproc:
.size _start, .-_start
.bss
.comm operatingsystem_parameter_envp,4
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
#
# $Log$
# Revision 1.7 2004-05-27 23:15:02 peter
# Revision 1.8 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.7 2004/05/27 23:15:02 peter
# * startup argc,argv,envp fix
# * stat fixed
#

View File

@ -50,11 +50,11 @@ _start:
popq %rsi /* Pop the argument count. */
movq %rsp, %rdx /* argv starts just at the current stack top. */
movq %rsi,U_SYSTEM_ARGC
movq %rsp,U_SYSTEM_ARGV /* argv starts just at the current stack top. */
movq %rsi,operatingsystem_parameter_argc
movq %rsp,operatingsystem_parameter_argv /* argv starts just at the current stack top. */
leaq 8(,%rsi,8),%rax
addq %rsp,%rax
movq %rax,U_SYSTEM_ENVP
movq %rax,operatingsystem_parameter_envp
/* Align the stack to a 16 byte boundary to follow the ABI. */
andq $~15, %rsp
@ -93,7 +93,7 @@ main_stub:
.globl _haltproc
.type _haltproc,@function
_haltproc:
movzwq U_SYSTEM_EXITCODE,%rax /* load and save exitcode */
movzwq operatingsystem_result,%rax /* load and save exitcode */
movq ___fpc_ret,%rdx /* return to libc */
movq ___fpc_ret_rbp,%rbp
@ -121,6 +121,11 @@ ___fpc_ret: /* return address to libc */
___fpc_ret_rbp:
.quad 0
.bss
.comm operatingsystem_parameter_envp,8
.comm operatingsystem_parameter_argc,8
.comm operatingsystem_parameter_argv,8
/* We need this stuff to make gdb behave itself, otherwise
gdb will chokes with SIGILL when trying to debug apps.
*/
@ -140,7 +145,11 @@ ___fpc_ret_rbp:
/*
$Log$
Revision 1.2 2004-02-20 23:48:27 peter
Revision 1.3 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.2 2004/02/20 23:48:27 peter
* c stub implemented
Revision 1.1 2003/01/06 19:39:17 florian

View File

@ -42,11 +42,11 @@ _start:
# movq %rdx,%r9 /* Address of the shared library termination
# function. */
popq %rsi /* Pop the argument count. */
movq %rsi,U_SYSTEM_ARGC
movq %rsp,U_SYSTEM_ARGV /* argv starts just at the current stack top. */
movq %rsi,operatingsystem_parameter_argc
movq %rsp,operatingsystem_parameter_argv /* argv starts just at the current stack top. */
leaq 8(,%rsi,8),%rax
addq %rsp,%rax
movq %rax,U_SYSTEM_ENVP
movq %rax,operatingsystem_parameter_envp
andq $~15,%rsp /* Align the stack to a 16 byte boundary to follow the ABI. */
/* !!!! CPU initialization? */
@ -59,8 +59,7 @@ _start:
.type _haltproc,@function
_haltproc:
movl $60,%eax /* exit call */
xorq %rdi,%rdi
movw U_SYSTEM_EXITCODE,%di
movzwl operatingsystem_result,%edi
syscall
jmp _haltproc
@ -72,6 +71,12 @@ __data_start:
.weak data_start
data_start = __data_start
.bss
.comm operatingsystem_parameter_envp,8
.comm operatingsystem_parameter_argc,8
.comm operatingsystem_parameter_argv,8
/* We need this stuff to make gdb behave itself, otherwise
gdb will chokes with SIGILL when trying to debug apps.
*/
@ -90,7 +95,11 @@ __data_start:
#
# $Log$
# Revision 1.7 2004-04-24 17:14:09 florian
# Revision 1.8 2004-07-03 21:50:31 daniel
# * Modified bootstrap code so separate prt0.as/prt0_10.as files are no
# longer necessary
#
# Revision 1.7 2004/04/24 17:14:09 florian
# * prt0.as exit code handling fixed
# * int64 mod int64 for negative numbers fixed
#

View File

@ -52,14 +52,17 @@ const
sLineBreak = LineEnding;
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsLF;
var
argc : longint;
argv : ppchar;
envp : ppchar;
var argc:longint;external name 'operatingsystem_parameter_argc';
argv:PPchar;external name 'operatingsystem_parameter_argv';
envp:PPchar;external name 'operatingsystem_parameter_envp';
{
$Log$
Revision 1.19 2004-05-18 20:16:23 peter
Revision 1.20 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.19 2004/05/18 20:16:23 peter
* unix thandle is always 32bit
* textrec fixed for 64bit

View File

@ -23,6 +23,7 @@ interface
{$DEFINE HAS_SLEEP}
{$DEFINE HAS_OSERROR}
{$DEFINE HASUNIX}
uses
Unix,errors,sysconst;
@ -643,7 +644,11 @@ end.
{
$Log$
Revision 1.42 2004-06-15 07:36:03 michael
Revision 1.43 2004-07-03 21:50:31 daniel
* Modified bootstrap code so separate prt0.as/prt0_10.as files are no
longer necessary
Revision 1.42 2004/06/15 07:36:03 michael
+ Fixed Globtosearchrec to use unixtowinage
Revision 1.41 2004/05/22 14:25:03 michael