- Drop fpc-2.2.4-stackexecute.patch since bug was fixed in 2.4.0

Tue May 4 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 2.4.0-0.fc14
- Upgrade to upstream release 2.4.0.
- Drop fpc-2.2.4-r12475.patch as present in 2.4.0.
- Base the .spec build on upstream released archive
    (fpcbuild-2.4.0.tar.gz).
- Remove the obsolete .spec BuildRoot tag.
- Remove BuildRequires for binutils and glibc-devel as guaranteed as always
    provided in Fedora Packaging Guidlines.
- Remove Requires glibc as guaranteed on a Fedora system.
- Add %%{?_smp_mflags} and -j1 appropriately, applied one -j1 workaround.
- Change {compiler,rtl}/COPYING to COPYING.txt.
This commit is contained in:
Joost van der Sluis 2010-05-05 18:51:21 +00:00
parent 095296864b
commit b1f3e84379
5 changed files with 34 additions and 84 deletions

View File

@ -1 +1 @@
fpcbuild-2.2.4.tar.gz
fpcbuild-2.4.0.tar.gz

View File

@ -1,44 +0,0 @@
Index: fpcsrc/compiler/powerpc/cpupara.pas
===================================================================
--- fpcsrc/compiler/powerpc/cpupara.pas (revision 12474)
+++ fpcsrc/compiler/powerpc/cpupara.pas (revision 12475)
@@ -130,7 +130,12 @@
result:=LOC_REGISTER;
classrefdef:
result:=LOC_REGISTER;
- procvardef,
+ procvardef:
+ if (target_info.abi = abi_powerpc_aix) or
+ (p.size = sizeof(pint)) then
+ result:=LOC_REGISTER
+ else
+ result:=LOC_REFERENCE;
recorddef:
if (target_info.abi<>abi_powerpc_aix) or
((p.size >= 3) and
@@ -181,8 +186,24 @@
variantdef,
formaldef :
result:=true;
- recorddef,
+ { regular procvars must be passed by value, because you cannot pass
+ the address of a local stack location when calling e.g.
+ pthread_create with the address of a function (first of all it
+ expects the address of the function to execute and not the address
+ of a memory location containing that address, and secondly if you
+ first store the address on the stack and then pass the address of
+ this stack location, then this stack location may no longer be
+ valid when the newly started thread accesses it.
+
+ However, for "procedure of object" we must use the same calling
+ convention as for "8 byte record" due to the need for
+ interchangeability with the TMethod record type.
+ }
procvardef :
+ result:=
+ (target_info.abi <> abi_powerpc_aix) and
+ (def.size <> sizeof(pint));
+ recorddef :
result :=
(target_info.abi<>abi_powerpc_aix) or
((varspez = vs_const) and

View File

@ -1,16 +0,0 @@
Index: fpcsrc/compiler/utils/samplecfg
===================================================================
--- fpcsrc/compiler/utils/samplecfg (version 2.2.4)
+++ fpcsrc/compiler/utils/samplecfg (working copy)
@@ -372,6 +372,11 @@
-k--build-id
# -----------------------
+# Do not mark executables as requiring an executable stack (fpc-bug #11563)
+# -----------------------
+-k-z noexecstack
+
+# -----------------------
# Set Filenames and Paths
# -----------------------

View File

@ -1,27 +1,24 @@
Name: fpc
Version: 2.2.4
Release: 4%{?dist}
Version: 2.4.0
Release: 1%{?dist}
Summary: Free Pascal Compiler
Group: Development/Languages
License: GPLv2+ and LGPLv2+ with exceptions
URL: http://www.freepascal.org/
Source0: ftp://ftp.freepascal.org/pub/fpc/dist/source-%{version}/%{name}build-%{version}.tar.gz
Source0: ftp://ftp.freepascal.org/pub/fpc/dist/${version}/source/fpcbuild-%{version}.tar.gz
# This is only needed when useprebuiltcompiler is defined.
# But it's not in an 'if defined' block, since the file has to be included in the srpm
# Thus you should enable this line when useprebuildcompiler is defined for any target
# Source1: http://www.cnoc.nl/fpc/%{name}-%{version}.compiler.bin.tar.gz
Patch0: %{name}-%{version}-samplecfg_32and64bit.patch
Patch1: %{name}-%{version}-build-id.patch
Patch2: %{name}-%{version}-stackexecute.patch
Patch3: %{name}-%{version}-r12475.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0: fpc-2.2.4-samplecfg_32and64bit.patch
Patch1: fpc-2.2.4-build-id.patch
Requires: gpm, glibc, ncurses, binutils
Requires: gpm, ncurses, binutils
%if ! %{defined useprebuiltcompiler}
BuildRequires: fpc
%endif
BuildRequires: tetex, tetex-latex, tetex-fonts, binutils, glibc-devel
BuildRequires: tetex, tetex-latex, tetex-fonts
ExcludeArch: s390 s390x
@ -76,8 +73,6 @@ automatical-code generation purposes.
%endif
%patch0
%patch1
%patch2
%patch3
%build
# The source-files:
@ -92,26 +87,27 @@ STARTPP=`pwd`/startcompiler/%{ppcname}
%else
STARTPP=%{ppcname}
%endif
%define fpcopt -k"--build-id -z noexecstack"
%define fpcopt -k"--build-id"
cd fpcsrc
NEWPP=`pwd`/compiler/%{ppcname}
NEWFPDOC=`pwd`/utils/fpdoc/fpdoc
DATA2INC=`pwd`/utils/data2inc
make compiler_cycle FPC=${STARTPP} OPT='%{fpcopt} %{fpcdebugopt}'
make rtl_clean rtl%{smart} FPC=${NEWPP} OPT='%{fpcopt}'
make packages%{smart} FPC=${NEWPP} OPT='%{fpcopt}'
make ide_all FPC=${NEWPP} OPT='%{fpcopt} %{fpcdebugopt}'
make utils_all FPC=${NEWPP} DATA2INC=${DATA2INC} OPT='%{fpcopt} %{fpcdebugopt}'
make %{?_smp_mflags} compiler_cycle FPC=${STARTPP} OPT='%{fpcopt} %{fpcdebugopt}'
make %{?_smp_mflags} rtl_clean rtl%{smart} FPC=${NEWPP} OPT='%{fpcopt}'
make %{?_smp_mflags} packages%{smart} FPC=${NEWPP} OPT='%{fpcopt}'
make %{?_smp_mflags} ide_all FPC=${NEWPP} OPT='%{fpcopt} %{fpcdebugopt}'
make %{?_smp_mflags} utils_all FPC=${NEWPP} DATA2INC=${DATA2INC} OPT='%{fpcopt} %{fpcdebugopt}'
cd ..
make -C fpcdocs pdf FPC=${NEWPP} FPDOC=${NEWFPDOC}
# FIXME: -j1 as there is a race - seen on "missing" `rtl.xct'.
make -j1 -C fpcdocs pdf FPC=${NEWPP} FPDOC=${NEWFPDOC}
%install
rm -rf %{buildroot}
cd fpcsrc
FPCMAKE=`pwd`/utils/fpcm/fpcmake
NEWPP=`pwd`/compiler/%{ppcname}
INSTALLOPTS="FPC=${NEWPP} FPCMAKE=${FPCMAKE} \
INSTALLOPTS="-j1 FPC=${NEWPP} FPCMAKE=${FPCMAKE} \
INSTALL_PREFIX=%{buildroot}%{_prefix} \
INSTALL_LIBDIR=%{buildroot}%{_libdir} \
INSTALL_BASEDIR=%{buildroot}%{_libdir}/%{name}/%{version} \
@ -137,8 +133,8 @@ ln -sf ../%{_lib}/%{name}/%{version}/%{ppcname} %{buildroot}%{_bindir}/%{ppcname
%{buildroot}/%{_libdir}/%{name}/%{version}/samplecfg %{_exec_prefix} %{buildroot}%{_sysconfdir} %{buildroot}%{_exec_prefix}
# Include the COPYING-information for the compiler/rtl/fcl in the documentation
cp -a fpcsrc/compiler/COPYING %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING
cp -a fpcsrc/rtl/COPYING %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.rtl
cp -a fpcsrc/compiler/COPYING.txt %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING
cp -a fpcsrc/rtl/COPYING.txt %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.rtl
cp -a fpcsrc/rtl/COPYING.FPC %{buildroot}%{_defaultdocdir}/%{name}-%{version}/COPYING.FPC
# The source-files:
@ -177,6 +173,20 @@ rm -rf %{buildroot}
%{_datadir}/fpcsrc
%changelog
* Wed May 5 2010 Joost van der Sluis <joost@cnoc.nl> - 2.4.0-1.fc14
- Drop fpc-2.2.4-stackexecute.patch since bug was fixed in 2.4.0
* Tue May 4 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 2.4.0-0.fc14
- Upgrade to upstream release 2.4.0.
- Drop fpc-2.2.4-r12475.patch as present in 2.4.0.
- Base the .spec build on upstream released archive (fpcbuild-2.4.0.tar.gz).
- Remove the obsolete .spec BuildRoot tag.
- Remove BuildRequires for binutils and glibc-devel as guaranteed as always
provided in Fedora Packaging Guidlines.
- Remove Requires glibc as guaranteed on a Fedora system.
- Add %%{?_smp_mflags} and -j1 appropriately, applied one -j1 workaround.
- Change {compiler,rtl}/COPYING to COPYING.txt.
* Tue Oct 6 2009 Joost van der Sluis <joost@cnoc.nl> 2.2.4-4
- fixed procvar parameter passing on ppc/sysv (by value instead of by
reference -- except for method procvars, for tmethod record compatibility)

View File

@ -1 +1 @@
20bb9a4a9f1449e2249c80d7aba7c245 fpcbuild-2.2.4.tar.gz
af49e9a8bb632f361395add30ece8934 fpcbuild-2.4.0.tar.gz