mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 01:29:29 +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
|
||||
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))
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
Loading…
Reference in New Issue
Block a user