Fix powerpc cycle for AIX target

git-svn-id: trunk@35275 -
This commit is contained in:
pierre 2017-01-10 23:21:49 +00:00
parent 7e75457a3e
commit 1342d0792f
3 changed files with 63 additions and 3 deletions

View File

@ -3995,7 +3995,11 @@ endif
ifndef EXENAME
EXENAME=ppc$(CPUSUF)$(EXEEXT)
endif
ifndef MULTIEXENAME
MULTIEXENAME=multippc$(CPUSUF)$(EXEEXT)
endif
PPEXENAME=pp$(EXEEXT)
PPMULTIEXENAME=multipp$(EXEEXT)
TEMPNAME=ppc$(SRCEXEEXT)
ifneq ($(CPUSUF),jvm)
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
@ -4029,6 +4033,7 @@ alltargets: $(ALLTARGETS)
.PHONY: all compiler echotime ppuclean execlean clean distclean
all: compiler $(addsuffix _all,$(TARGET_DIRS))
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
multi-compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
ifeq ($(MAKELEVEL),0)
ifndef STARTTIME
ifdef DATE
@ -4143,6 +4148,25 @@ endif
$(COMPILER) pp.pas
$(EXECPPAS)
$(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
ifeq ($(CPU_SOURCE),$(PPC_TARGET))
ifeq ($(OS_SOURCE),$(OS_TARGET))

View File

@ -387,7 +387,11 @@ endif
ifndef EXENAME
EXENAME=ppc$(CPUSUF)$(EXEEXT)
endif
ifndef MULTIEXENAME
MULTIEXENAME=multippc$(CPUSUF)$(EXEEXT)
endif
PPEXENAME=pp$(EXEEXT)
PPMULTIEXENAME=multipp$(EXEEXT)
TEMPNAME=ppc$(SRCEXEEXT)
ifneq ($(CPUSUF),jvm)
PPCROSSNAME=ppcross$(CPUSUF)$(SRCEXEEXT)
@ -441,6 +445,8 @@ all: compiler $(addsuffix _all,$(TARGET_DIRS))
compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
multi-compiler: $(COMPILER_UNITTARGETDIR) $(COMPILER_TARGETDIR) $(EXENAME)
ifeq ($(MAKELEVEL),0)
ifndef STARTTIME
ifdef DATE
@ -594,6 +600,28 @@ endif
$(EXECPPAS)
$(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

View File

@ -481,8 +481,16 @@ unit agppcgas;
{ map cr registers to plain numbers }
for i:=0 to 7 do
writer.AsmWriteln(#9'.set'#9'cr'+tostr(i)+','+tostr(i));
{ make sure we always have a code and toc section, the linker expects
that }
{ Ensure .data and .rodata sections are aligned to 8-byte boundary,
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]');
{ set _text_s, to be used by footer below }
writer.AsmWriteln(#9'_text_s:');
@ -494,7 +502,7 @@ unit agppcgas;
begin
inherited WriteExtraFooter;
{ link between data and text section }
writer.AsmWriteln(#9'.csect .data[RW],4');
writer.AsmWriteln(#9'.csect .data[RW],3');
{$ifdef cpu64bitaddr}
writer.AsmWriteln('text_pos:'#9'.llong _text_s')
{$else cpu64bitaddr}