mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-20 13:29:14 +02:00
Fix powerpc cycle for AIX target
git-svn-id: trunk@35275 -
This commit is contained in:
parent
7e75457a3e
commit
1342d0792f
@ -3995,7 +3995,11 @@ endif
|
|||||||
ifndef EXENAME
|
ifndef EXENAME
|
||||||
EXENAME=ppc$(CPUSUF)$(EXEEXT)
|
EXENAME=ppc$(CPUSUF)$(EXEEXT)
|
||||||
endif
|
endif
|
||||||
|
ifndef MULTIEXENAME
|
||||||
|
MULTIEXENAME=multippc$(CPUSUF)$(EXEEXT)
|
||||||
|
endif
|
||||||
PPEXENAME=pp$(EXEEXT)
|
PPEXENAME=pp$(EXEEXT)
|
||||||
|
PPMULTIEXENAME=multipp$(EXEEXT)
|
||||||
TEMPNAME=ppc$(SRCEXEEXT)
|
TEMPNAME=ppc$(SRCEXEEXT)
|
||||||
ifneq ($(CPUSUF),jvm)
|
ifneq ($(CPUSUF),jvm)
|
||||||
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
|
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
|
||||||
@ -4029,6 +4033,7 @@ alltargets: $(ALLTARGETS)
|
|||||||
.PHONY: all compiler echotime ppuclean execlean clean distclean
|
.PHONY: all compiler echotime ppuclean execlean clean distclean
|
||||||
all: compiler $(addsuffix _all,$(TARGET_DIRS))
|
all: compiler $(addsuffix _all,$(TARGET_DIRS))
|
||||||
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
||||||
|
multi-compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
||||||
ifeq ($(MAKELEVEL),0)
|
ifeq ($(MAKELEVEL),0)
|
||||||
ifndef STARTTIME
|
ifndef STARTTIME
|
||||||
ifdef DATE
|
ifdef DATE
|
||||||
@ -4143,6 +4148,25 @@ endif
|
|||||||
$(COMPILER) pp.pas
|
$(COMPILER) pp.pas
|
||||||
$(EXECPPAS)
|
$(EXECPPAS)
|
||||||
$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
|
$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
|
||||||
|
$(MULTIEXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
|
||||||
|
$(wildcard systems/*.pas) $(wilcard systems/*.inc) \
|
||||||
|
$(wildcard $(CPC_TARGET)/*.pas) $(wildcard $(CPC_TARGET)/*.inc) \
|
||||||
|
$(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR)
|
||||||
|
ifneq ($(REVSTR),)
|
||||||
|
ifdef USEZIPWRAPPER
|
||||||
|
ifneq ($(ECHOREDIR),echo)
|
||||||
|
$(ECHOREDIR) "'$(REVSTR)'" > revision.inc
|
||||||
|
else
|
||||||
|
$(ECHOREDIR) '$(REVSTR)' > revision.inc
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$(ECHOREDIR) "'$(REVSTR)'" > revision.inc
|
||||||
|
endif
|
||||||
|
$(COMPILER) version.pas
|
||||||
|
endif
|
||||||
|
$(COMPILER) multipp.pas
|
||||||
|
$(EXECPPAS)
|
||||||
|
$(MOVE) $(COMPILER_TARGETDIR)/$(PPMULTIEXENAME) $(MULTIEXENAME)
|
||||||
.PHONY: cycle fullcycle wpocycle
|
.PHONY: cycle fullcycle wpocycle
|
||||||
ifeq ($(CPU_SOURCE),$(PPC_TARGET))
|
ifeq ($(CPU_SOURCE),$(PPC_TARGET))
|
||||||
ifeq ($(OS_SOURCE),$(OS_TARGET))
|
ifeq ($(OS_SOURCE),$(OS_TARGET))
|
||||||
|
@ -387,7 +387,11 @@ endif
|
|||||||
ifndef EXENAME
|
ifndef EXENAME
|
||||||
EXENAME=ppc$(CPUSUF)$(EXEEXT)
|
EXENAME=ppc$(CPUSUF)$(EXEEXT)
|
||||||
endif
|
endif
|
||||||
|
ifndef MULTIEXENAME
|
||||||
|
MULTIEXENAME=multippc$(CPUSUF)$(EXEEXT)
|
||||||
|
endif
|
||||||
PPEXENAME=pp$(EXEEXT)
|
PPEXENAME=pp$(EXEEXT)
|
||||||
|
PPMULTIEXENAME=multipp$(EXEEXT)
|
||||||
TEMPNAME=ppc$(SRCEXEEXT)
|
TEMPNAME=ppc$(SRCEXEEXT)
|
||||||
ifneq ($(CPUSUF),jvm)
|
ifneq ($(CPUSUF),jvm)
|
||||||
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
|
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
|
||||||
@ -441,6 +445,8 @@ all: compiler $(addsuffix _all,$(TARGET_DIRS))
|
|||||||
|
|
||||||
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
||||||
|
|
||||||
|
multi-compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),0)
|
ifeq ($(MAKELEVEL),0)
|
||||||
ifndef STARTTIME
|
ifndef STARTTIME
|
||||||
ifdef DATE
|
ifdef DATE
|
||||||
@ -594,6 +600,28 @@ endif
|
|||||||
$(EXECPPAS)
|
$(EXECPPAS)
|
||||||
$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
|
$(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME)
|
||||||
|
|
||||||
|
# Make only the compiler
|
||||||
|
# ECHOREDIR sometimes does not remove double quotes
|
||||||
|
$(MULTIEXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \
|
||||||
|
$(wildcard systems/*.pas) $(wilcard systems/*.inc) \
|
||||||
|
$(wildcard $(CPC_TARGET)/*.pas) $(wildcard $(CPC_TARGET)/*.inc) \
|
||||||
|
$(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR)
|
||||||
|
ifneq ($(REVSTR),)
|
||||||
|
ifdef USEZIPWRAPPER
|
||||||
|
ifneq ($(ECHOREDIR),echo)
|
||||||
|
$(ECHOREDIR) "'$(REVSTR)'" > revision.inc
|
||||||
|
else
|
||||||
|
$(ECHOREDIR) '$(REVSTR)' > revision.inc
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$(ECHOREDIR) "'$(REVSTR)'" > revision.inc
|
||||||
|
endif
|
||||||
|
$(COMPILER) version.pas
|
||||||
|
endif
|
||||||
|
$(COMPILER) multipp.pas
|
||||||
|
$(EXECPPAS)
|
||||||
|
$(MOVE) $(COMPILER_TARGETDIR)/$(PPMULTIEXENAME) $(MULTIEXENAME)
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# Cycle targets
|
# Cycle targets
|
||||||
|
@ -481,8 +481,16 @@ unit agppcgas;
|
|||||||
{ map cr registers to plain numbers }
|
{ map cr registers to plain numbers }
|
||||||
for i:=0 to 7 do
|
for i:=0 to 7 do
|
||||||
writer.AsmWriteln(#9'.set'#9'cr'+tostr(i)+','+tostr(i));
|
writer.AsmWriteln(#9'.set'#9'cr'+tostr(i)+','+tostr(i));
|
||||||
{ make sure we always have a code and toc section, the linker expects
|
{ Ensure .data and .rodata sections are aligned to 8-byte boundary,
|
||||||
that }
|
required for correct RTTI alignment.
|
||||||
|
AIX assembler seems to only care for the first
|
||||||
|
alignment value given }
|
||||||
|
writer.AsmWriteln(#9'.csect .data[RW],3');
|
||||||
|
{ .rodata is translated into .text[RO]
|
||||||
|
see sectionname in aggas unit. }
|
||||||
|
writer.AsmWriteln(#9'.csect .text[RO],3');
|
||||||
|
{ make sure we always have a code and toc section,
|
||||||
|
the linker expects that }
|
||||||
writer.AsmWriteln(#9'.csect .text[PR]');
|
writer.AsmWriteln(#9'.csect .text[PR]');
|
||||||
{ set _text_s, to be used by footer below }
|
{ set _text_s, to be used by footer below }
|
||||||
writer.AsmWriteln(#9'_text_s:');
|
writer.AsmWriteln(#9'_text_s:');
|
||||||
@ -494,7 +502,7 @@ unit agppcgas;
|
|||||||
begin
|
begin
|
||||||
inherited WriteExtraFooter;
|
inherited WriteExtraFooter;
|
||||||
{ link between data and text section }
|
{ link between data and text section }
|
||||||
writer.AsmWriteln(#9'.csect .data[RW],4');
|
writer.AsmWriteln(#9'.csect .data[RW],3');
|
||||||
{$ifdef cpu64bitaddr}
|
{$ifdef cpu64bitaddr}
|
||||||
writer.AsmWriteln('text_pos:'#9'.llong _text_s')
|
writer.AsmWriteln('text_pos:'#9'.llong _text_s')
|
||||||
{$else cpu64bitaddr}
|
{$else cpu64bitaddr}
|
||||||
|
Loading…
Reference in New Issue
Block a user