summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald van Dijk <truedfx@gentoo.org>2009-03-14 17:29:50 +0000
committerHarald van Dijk <truedfx@gentoo.org>2009-03-14 17:29:50 +0000
commit06bcda66829686390d7dc61b42dbdf6b19de1810 (patch)
treee711f4917b5b08b09e9df4d2720008ca33511988 /dev-lang/fpc
parentarm/ia64/s390/sh/sparc stable wrt #259927 (diff)
downloadhistorical-06bcda66829686390d7dc61b42dbdf6b19de1810.tar.gz
historical-06bcda66829686390d7dc61b42dbdf6b19de1810.tar.bz2
historical-06bcda66829686390d7dc61b42dbdf6b19de1810.zip
Drop RESTRICT=strip, and pick execstack fix from upstream
Package-Manager: portage-2.2_rc25/cvs/Linux x86_64
Diffstat (limited to 'dev-lang/fpc')
-rw-r--r--dev-lang/fpc/ChangeLog13
-rw-r--r--dev-lang/fpc/files/fpc-2.2.2-execstack.patch338
-rw-r--r--dev-lang/fpc/fpc-2.0.0-r1.ebuild161
-rw-r--r--dev-lang/fpc/fpc-2.0.2.ebuild161
-rw-r--r--dev-lang/fpc/fpc-2.0.4.ebuild148
-rw-r--r--dev-lang/fpc/fpc-2.2.2-r1.ebuild (renamed from dev-lang/fpc/fpc-2.2.2.ebuild)12
6 files changed, 356 insertions, 477 deletions
diff --git a/dev-lang/fpc/ChangeLog b/dev-lang/fpc/ChangeLog
index a9b269b194c6..2fc23d1fe383 100644
--- a/dev-lang/fpc/ChangeLog
+++ b/dev-lang/fpc/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-lang/fpc
-# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/ChangeLog,v 1.45 2008/12/16 19:30:03 truedfx Exp $
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/ChangeLog,v 1.46 2009/03/14 17:29:50 truedfx Exp $
+
+*fpc-2.2.2-r1 (10 Mar 2009)
+
+ 14 Mar 2009; Harald van Dijk <truedfx@gentoo.org>
+ +files/fpc-2.2.2-execstack.patch, -fpc-2.0.0-r1.ebuild, -fpc-2.0.2.ebuild,
+ -fpc-2.0.4.ebuild, -fpc-2.2.2.ebuild, +fpc-2.2.2-r1.ebuild:
+ Drop RESTRICT=strip, now that binutils is fixed (#183725)
+ Pick noexecstack bits from upstream (#228867)
+ Remove older versions
16 Dec 2008; Harald van Dijk <truedfx@gentoo.org> fpc-2.0.4.ebuild,
fpc-2.2.0.ebuild, fpc-2.2.0-r1.ebuild, fpc-2.2.2.ebuild:
diff --git a/dev-lang/fpc/files/fpc-2.2.2-execstack.patch b/dev-lang/fpc/files/fpc-2.2.2-execstack.patch
new file mode 100644
index 000000000000..c2c38c20dc45
--- /dev/null
+++ b/dev-lang/fpc/files/fpc-2.2.2-execstack.patch
@@ -0,0 +1,338 @@
+
+ http://bugs.gentoo.org/show_bug.cgi?id=228867
+ http://mantis.freepascal.org/view.php?id=11563
+
+--- fpcbuild-2.2.2/fpcsrc/compiler/aggas.pas
++++ fpcbuild-2.2.2/fpcsrc/compiler/aggas.pas
+@@ -1074,6 +1074,13 @@
+ (target_info.system in systems_darwin) then
+ AsmWriteLn(#9'.subsections_via_symbols');
+
++ { "no executable stack" marker for Linux }
++ if (target_info.system in system_linux) and
++ not(cs_executable_stack in current_settings.moduleswitches) then
++ begin
++ AsmWriteLn('.section .note.GNU-stack,"",%progbits');
++ end;
++
+ AsmLn;
+ {$ifdef EXTDEBUG}
+ if assigned(current_module.mainsource) then
+--- fpcbuild-2.2.2/fpcsrc/compiler/globtype.pas
++++ fpcbuild-2.2.2/fpcsrc/compiler/globtype.pas
+@@ -109,7 +109,9 @@
+ { linking }
+ cs_create_smart,cs_create_dynamic,cs_create_pic,
+ { browser switches are back }
+- cs_browser,cs_local_browser
++ cs_browser,cs_local_browser,
++ { target specific }
++ cs_executable_stack
+ );
+ tmoduleswitches = set of tmoduleswitch;
+
+--- fpcbuild-2.2.2/fpcsrc/compiler/msg/errore.msg
++++ fpcbuild-2.2.2/fpcsrc/compiler/msg/errore.msg
+@@ -2699,6 +2699,7 @@
+ 3*1W<x>_Target-specific options (targets)
+ A*1W<x>_Target-specific options (targets)
+ P*1W<x>_Target-specific options (targets)
++p*1W<x>_Target-specific options (targets)
+ 3*2Wb_Create a bundle instead of a library (Darwin)
+ P*2Wb_Create a bundle instead of a library (Darwin)
+ p*2Wb_Create a bundle instead of a library (Darwin)
+@@ -2718,6 +2719,10 @@
+ 3*2WR_Generate relocation code (Windows)
+ A*2WR_Generate relocation code (Windows)
+ P*2WT_Specify MPW tool type application (Classic Mac OS)
++3*2WX_Enable executable stack (Linux)
++A*2WX_Enable executable stack (Linux)
++p*2WX_Enable executable stack (Linux)
++P*2WX_Enable executable stack (Linux)
+ **1X_Executable options:
+ **2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Linux)
+ **2Xd_Do not use standard library search path (needed for cross compile)
+--- fpcbuild-2.2.2/fpcsrc/compiler/msgidx.inc
++++ fpcbuild-2.2.2/fpcsrc/compiler/msgidx.inc
+@@ -738,7 +738,7 @@
+ option_info=11024;
+ option_help_pages=11025;
+
+- MsgTxtSize = 45950;
++ MsgTxtSize = 46144;
+
+ MsgIdxMax : array[1..20] of longint=(
+ 24,87,248,84,63,50,108,22,135,61,
+--- fpcbuild-2.2.2/fpcsrc/compiler/msgtxt.inc
++++ fpcbuild-2.2.2/fpcsrc/compiler/msgtxt.inc
+@@ -1,7 +1,7 @@
+ {$ifdef Delphi}
+-const msgtxt : array[0..000191] of string[240]=(
++const msgtxt : array[0..000192] of string[240]=(
+ {$else Delphi}
+-const msgtxt : array[0..000191,1..240] of char=(
++const msgtxt : array[0..000192,1..240] of char=(
+ {$endif Delphi}
+ '01000_T_Compiler: $1'#000+
+ '01001_D_Compiler OS: $1'#000+
+@@ -1051,47 +1051,52 @@
+ '3*1W<x>_Target-specific options (targets)'#010+
+ 'A*1W<x>_Target-specific options (targets)'#010+
+ 'P*1W<x>_Target-specific options (targets)'#010+
+- '3*2Wb_Create a b','undle instead of a library (Darwin)'#010+
++ 'p*1W<x>_Target-s','pecific options (targets)'#010+
++ '3*2Wb_Create a bundle instead of a library (Darwin)'#010+
+ 'P*2Wb_Create a bundle instead of a library (Darwin)'#010+
+ 'p*2Wb_Create a bundle instead of a library (Darwin)'#010+
+ '3*2WB_Create a relocatable image (Windows)'#010+
+- 'A*2WB_Create a relocatable image (Windows, Symbian)'#010+
+- '3*2WC','_Specify console type application (EMX, OS/2, Windows)'#010+
++ 'A*2WB_Create a ','relocatable image (Windows, Symbian)'#010+
++ '3*2WC_Specify console type application (EMX, OS/2, Windows)'#010+
+ 'A*2WC_Specify console type application (Windows)'#010+
+ 'P*2WC_Specify console type application (Classic Mac OS)'#010+
+- '3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
+- 'A*2WD_Use DEFFILE ','to export functions of DLL or EXE (Windows)'#010+
++ '3*2WD_Use DEFFILE to export functions ','of DLL or EXE (Windows)'#010+
++ 'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
+ '3*2WF_Specify full-screen type application (EMX, OS/2)'#010+
+ '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+
+- 'A*2WG_Specify graphic type application (Windows)'#010+
+- 'P*2WG_Specify graphic type appli','cation (Classic Mac OS)'#010+
++ 'A*2WG_Specify graphic type application ','(Windows)'#010+
++ 'P*2WG_Specify graphic type application (Classic Mac OS)'#010+
+ '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
+ 'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
+- '3*2WR_Generate relocation code (Windows)'#010+
+- 'A*2WR_Generate relocation code (Win','dows)'#010+
++ '3*2WR_Generate relocation code (Wi','ndows)'#010+
++ 'A*2WR_Generate relocation code (Windows)'#010+
+ 'P*2WT_Specify MPW tool type application (Classic Mac OS)'#010+
++ '3*2WX_Enable executable stack (Linux)'#010+
++ 'A*2WX_Enable executable stack (Linux)'#010+
++ 'p*2WX_Enable executable stack (Linux)'#010+
++ 'P*2WX_Enable executab','le stack (Linux)'#010+
+ '**1X_Executable options:'#010+
+ '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+
+ 'ux)'#010+
+ '**2Xd_Do not use standard library search path (needed for cross compil'+
+ 'e)'#010+
+- '**2Xe','_Use external linker'#010+
+- '**2Xg_Create debuginfo in a separate file and add a debuglink section '+
+- 'to executable'#010+
++ '**2Xe_Use external linker'#010+
++ '**2Xg_Create debuginfo in',' a separate file and add a debuglink sectio'+
++ 'n to executable'#010+
+ '**2XD_Try to link units dynamically (defines FPC_LINK_DYNAMIC)'#010+
+ '**2Xi_Use internal linker'#010+
+ '**2Xm_Generate link map'#010+
+- '**2XM<x>_Set the ','name of the '#039'main'#039' program routine (default'+
+- ' is '#039'main'#039')'#010+
++ '**2XM<x>_Set the name of the '#039'main'#039' program routine (default i'+
++ 's',' '#039'main'#039')'#010+
+ '**2XP<x>_Prepend the binutils names with the prefix <x>'#010+
+ '**2Xr<x>_Set library search path to <x> (needed for cross compile) (Be'+
+ 'OS, Linux)'#010+
+- '**2XR<x>_Prepend <x> to all linker search paths ','(BeOS, Darwin, FreeB'+
+- 'SD, Linux, Mac OS, Solaris)'#010+
++ '**2XR<x>_Prepend <x> to all linker search paths (BeOS, Darwin, FreeBSD'+
++ ', Linux, Mac OS, Solaris',')'#010+
+ '**2Xs_Strip all symbols from executable'#010+
+ '**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)'#010+
+ '**2Xt_Link with static libraries (-static is passed to linker)'#010+
+- '**2XX_Try to smartl','ink units (defines FPC_LINK_SMART)'#010+
++ '**2XX_Try to smartlink units (defines FPC_LINK_SMART)',#010+
+ '**1*_'#010+
+ '**1?_Show this help'#010+
+ '**1h_Shows this help without waiting'#000
+--- fpcbuild-2.2.2/fpcsrc/compiler/ogelf.pas
++++ fpcbuild-2.2.2/fpcsrc/compiler/ogelf.pas
+@@ -1021,6 +1021,10 @@
+ symtabsect:=TElfObjSection.create_ext(ObjSectionList,'.symtab',SHT_SYMTAB,0,0,0,4,sizeof(telfsymbol));
+ strtabsect:=TElfObjSection.create_ext(ObjSectionList,'.strtab',SHT_STRTAB,0,0,0,1,0);
+ shstrtabsect:=TElfObjSection.create_ext(ObjSectionList,'.shstrtab',SHT_STRTAB,0,0,0,1,0);
++ { "no executable stack" marker for Linux }
++ if (target_info.system in system_linux) and
++ not(cs_executable_stack in current_settings.moduleswitches) then
++ TElfObjSection.create_ext(ObjSectionList,'.note.GNU-stack',SHT_PROGBITS,0,0,0,1,0);
+ { insert the empty and filename as first in strtab }
+ strtabsect.writestr(#0);
+ strtabsect.writestr(ExtractFileName(current_module.mainsource^)+#0);
+--- fpcbuild-2.2.2/fpcsrc/compiler/options.pas
++++ fpcbuild-2.2.2/fpcsrc/compiler/options.pas
+@@ -1357,6 +1357,18 @@
+ else
+ apptype:=app_tool;
+ end;
++ 'X':
++ begin
++ if (target_info.system in system_linux) then
++ begin
++ if UnsetBool(More, j) then
++ exclude(init_settings.moduleswitches,cs_executable_stack)
++ else
++ include(init_settings.moduleswitches,cs_executable_stack)
++ end
++ else
++ IllegalPara(opt);
++ end
+ else
+ IllegalPara(opt);
+ end;
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/cprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/cprt0.as
+@@ -135,3 +135,5 @@
+ 2: .long 0
+ .long 2,0,0
+ 3: .align 4
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/gprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/gprt0.as
+@@ -90,3 +90,4 @@
+ .long 2,0,0
+ 3: .align 4
+
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/prt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/prt0.as
+@@ -108,3 +108,5 @@
+ 2: .long 0
+ .long 2,0,0
+ 3: .align 4
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/ucprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/arm/ucprt0.as
+@@ -178,3 +178,5 @@
+ 2: .long 0
+ .long 2,0,0
+ 3: .align 4
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/cprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/cprt0.as
+@@ -105,3 +105,5 @@
+ .set operatingsystem_parameter_envp,operatingsystem_parameters+0
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+4
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+8
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/cprt21.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/cprt21.as
+@@ -122,3 +122,5 @@
+ .set operatingsystem_parameter_envp,operatingsystem_parameters+0
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+4
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+8
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/dllprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/dllprt0.as
+@@ -72,3 +72,4 @@
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+4
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+8
+
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/gprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/gprt0.as
+@@ -87,3 +87,5 @@
+ .set operatingsystem_parameter_envp,operatingsystem_parameters+0
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+4
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+8
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/gprt21.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/gprt21.as
+@@ -136,3 +136,4 @@
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+4
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+8
+
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/prt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/i386/prt0.as
+@@ -109,3 +109,4 @@
+
+ //.section .threadvar,"aw",@nobits
+ .comm ___fpc_threadvar_offset,4
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc/cprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc/cprt0.as
+@@ -117,3 +117,4 @@
+ .comm operatingsystem_parameter_argc, 4
+ .comm operatingsystem_parameter_argv, 4
+
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc/prt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc/prt0.as
+@@ -67,3 +67,5 @@
+ .comm operatingsystem_parameter_envp,4
+ .comm operatingsystem_parameter_argc,4
+ .comm operatingsystem_parameter_argv,4
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/cprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/cprt0.as
+@@ -433,3 +433,5 @@
+ .comm operatingsystem_parameter_argc, 4
+ .comm operatingsystem_parameter_argv, 8
+ .comm operatingsystem_parameter_envp, 8
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/gprt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/gprt0.as
+@@ -439,3 +439,5 @@
+ .comm operatingsystem_parameter_argc, 4
+ .comm operatingsystem_parameter_argv, 8
+ .comm operatingsystem_parameter_envp, 8
++
++.section .note.GNU-stack,"",%progbits
+--- fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/prt0.as
++++ fpcbuild-2.2.2/fpcsrc/rtl/linux/powerpc64/prt0.as
+@@ -376,3 +376,4 @@
+ .comm operatingsystem_parameter_argv, 8
+ .comm operatingsystem_parameter_envp, 8
+
++.section .note.GNU-stack,"",%progbits
+--- /dev/null
++++ fpcbuild-2.2.2/fpcsrc/tests/webtbs/tw11563.pp
+@@ -0,0 +1,40 @@
++{ %target=linux}
++{ %result=216 }
++
++program ExecStack;
++ procedure DoIt;
++ type
++ proc = procedure;
++ var
++{$if defined(cpupowerpc) or defined(cpupowerpc64)}
++ ret: longint;
++{$endif}
++{$if defined(cpui386) or defined(cpux86_64)}
++ ret: Byte;
++{$endif}
++{$ifdef cpuarm}
++ 'add arm code to test stack execution'
++{$endif}
++ DoNothing: proc;
++
++ begin
++{$if defined(cpupowerpc) or defined(cpupowerpc64)}
++ { can't use proc(@ret) because linux/ppc64 always expects some kind of
++ trampoline
++ }
++ ret := ($4e shl 24) or ($80 shl 16) or ($00 shl 8) or $20;
++ asm
++ la r0, ret
++ mtctr r0
++ bctrl
++ end;
++{$endif}
++{$if defined(cpui386) or defined(cpux86_64)}
++ ret := $C3;
++ DoNothing := proc(@ret);
++ DoNothing;
++{$endif}
++ end;
++begin
++ DoIt;
++end.
diff --git a/dev-lang/fpc/fpc-2.0.0-r1.ebuild b/dev-lang/fpc/fpc-2.0.0-r1.ebuild
deleted file mode 100644
index 310b7bdc46b3..000000000000
--- a/dev-lang/fpc/fpc-2.0.0-r1.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.0-r1.ebuild,v 1.8 2007/03/10 14:43:24 vapier Exp $
-
-inherit eutils
-
-MY_PV="2.0.0"
-STABLE="2.0.0"
-
-SLOT="0"
-LICENSE="GPL-2 LGPL-2.1 LGPL-2.1-FPC"
-KEYWORDS="~amd64 ~ppc ~sparc ~x86"
-DESCRIPTION="Free Pascal Compiler"
-HOMEPAGE="http://www.freepascal.org/"
-IUSE="doc"
-SRC_URI="mirror://sourceforge/freepascal/fpc-${MY_PV}.source.tar.gz
- x86? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.i386-linux.tar )
- sparc? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.sparc-linux.tar )
- ppc? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.powerpc-linux.tar )
- amd64? ( mirror://sourceforge/freepascal/fpc-${MY_PV}.x86_64-linux.tar )"
-DEPEND="!dev-lang/fpc-bin
- doc? ( dev-tex/tex4ht )"
-RDEPEND="!dev-lang/fpc-bin"
-S=${WORKDIR}/fpc
-
-src_unpack() {
- unpack ${A} || die "Unpacking ${A} failed!"
- case ${ARCH} in
- x86)
- tar -xf binary.i386-linux.tar || die "Unpacking binary.i386-linux.tar failed!"
- tar -zxf base.i386-linux.tar.gz || die "Unpacking base.i386-linux.tar.gz failed!"
- ;;
- sparc)
- tar -xf binary.sparc-linux.tar || die "Unpacking binary.sparc-linux.tar
- failed!"
- tar -zxf base.sparc-linux.tar.gz || die "Unpacking
- base.sparc-linux.tar.gz failed!"
- ;;
- ppc)
- tar -xf binary.powerpc-linux.tar || die "Unpacking binary.powerpc-linux.tar failed!"
- tar -zxf base.powerpc-linux.tar.gz || die "Unpacking base.powerpc-linux.tar.gz failed!"
- ;;
- amd64)
- tar -xf binary.x86_64-linux.tar || die "Unpacking binary.x86_64-linux.tar failed!"
- tar -zxf base.x86_64-linux.tar.gz || die "Unpacking base.x86_64-linux.tar.gz failed!"
- ;;
- esac
-}
-
-set_pp() {
- case ${ARCH} in
- x86)
- FPCARCH=386
- ;;
- sparc)
- FPCARCH=sparc
- ;;
- ppc)
- FPCARCH=ppc
- ;;
- amd64)
- FPCARCH=x64
- ;;
- esac
-
- case $1 in
- bootstrap) pp=${WORKDIR}/lib/fpc/${STABLE}/ppc${FPCARCH} ;;
- new) pp=${S}/compiler/ppc${FPCARCH} ;;
- *) die "set_pp: unknown argument: $1" ;;
- esac
-}
-
-src_compile() {
- local pp d
-
- # Using the bootstrap compiler.
- set_pp bootstrap
- emake -j1 compiler_cycle PP=${pp} \
- || die "make compiler_cycle failed!"
-
- # Using the new compiler.
- set_pp new
-
- # We cannot do this at once!
- for d in rtl packages fcl; do
- emake -j1 -C $d clean PP=${pp} || die "make -C $d clean failed!"
- done
-
- emake -j1 rtl packages_base_all fcl packages_extra_all PP=${pp} \
- || die "make rtl packages_base_all fcl packages_extra_all failed!"
-
- emake -j1 utils PP=${pp} DATA2INC=${S}/utils/data2inc \
- || die "make utils failed!"
-
- cd ${S}/docs
- use doc && make 4ht
- # examples fail miserably in v.2.0.0, sent email upstream
- # use examples && make linuxexamples
-}
-
-src_install() {
- local pp
- set_pp new
-
- make compiler_install rtl_install fcl_install \
- packages_install utils_install man_install \
- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \
- INSTALL_PREFIX="${D}usr" INSTALL_MANDIR="${D}usr/share/man" \
- doc_install INSTALL_DOCDIR="${D}usr/share/doc/${PF}/" \
- || die "make install failed!"
- dohtml ${D}usr/share/doc/${PF}/faq.html
- rm ${D}usr/share/doc/${PF}/faq.html
- cd ${S}/docs
- use doc && make INSTALL_DOCDIR="${D}usr/share/doc/${PF}/html" htmlinstall
-}
-
-pkg_preinst() {
- ${D}/usr/lib/fpc/${MY_PV}/samplecfg /usr/lib/fpc/${MY_PV} ${D}/etc
- case ${ARCH} in
- x86)
- FPCARCH=386
- ;;
- sparc)
- FPCARCH=sparc
- ;;
- ppc)
- FPCARCH=ppc
- ;;
- amd64)
- FPCARCH=x64
- ;;
- esac
- ln -s ../lib/fpc/${MY_PV}/ppc${FPCARCH} ${D}/usr/bin/
-}
-
-pkg_postinst() {
- # Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
- if [ -e /etc/._cfg0000_fpc.cfg ]; then
- echo
- ewarn "Make sure you etc-update /etc/fpc.cfg"
- ewarn "Otherwise FPC will not work correctly."
- echo
- ebeep
- fi
- case ${ARCH} in
- x86)
- FPCARCH=386
- ;;
- sparc)
- FPCARCH=sparc
- ;;
- ppc)
- FPCARCH=ppc
- ;;
- amd64)
- FPCARCH=x64
- ;;
- esac
- elog "/usr/bin/ppc${FPCARCH} now points to the new binary:"
- elog " /usr/lib/${PN}/${MY_PV}/ppc${FPCARCH}"
-}
diff --git a/dev-lang/fpc/fpc-2.0.2.ebuild b/dev-lang/fpc/fpc-2.0.2.ebuild
deleted file mode 100644
index aa3b1f140fb0..000000000000
--- a/dev-lang/fpc/fpc-2.0.2.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.2.ebuild,v 1.7 2007/07/13 06:25:50 mr_bones_ Exp $
-
-inherit eutils
-
-PV_BIN="2.0.0"
-S="${WORKDIR}/fpc"
-
-HOMEPAGE="http://www.freepascal.org/"
-DESCRIPTION="Free Pascal Compiler"
-SRC_URI="mirror://sourceforge/freepascal/fpc-${PV}.source.tar.gz
- mirror://gentoo/fpc-man-${PV}.tar.gz
- x86? ( mirror://gentoo/fpc-${PV_BIN}.i386-linux.tar )
- sparc? ( mirror://gentoo/fpc-${PV_BIN}.sparc-linux.tar )
- ppc? ( mirror://gentoo/fpc-${PV_BIN}.powerpc-linux.tar )
- amd64? ( mirror://gentoo/fpc-${PV_BIN}.x86_64-linux.tar )
- doc? ( mirror://gentoo/fpc-docs-${PV}.tar.gz )"
-
-SLOT="0"
-LICENSE="GPL-2 LGPL-2.1 LGPL-2.1-FPC"
-KEYWORDS="~amd64 ~ppc ~sparc ~x86"
-IUSE="doc source"
-
-DEPEND="!dev-lang/fpc-bin
- !dev-lang/fpc-source
- net-misc/rsync"
-RDEPEND="!dev-lang/fpc-bin
- !dev-lang/fpc-source"
-
-src_unpack() {
- unpack ${A} || die "Unpacking ${A} failed!"
- case ${ARCH} in
- x86) FPC_ARCH="i386" ;;
- ppc) FPC_ARCH="powerpc" ;;
- amd64) FPC_ARCH="x86_64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
- tar -xf binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!"
- tar -zxf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!"
-}
-
-set_pp() {
- case ${ARCH} in
- x86) FPC_ARCH="386" ;;
- ppc) FPC_ARCH="ppc" ;;
- amd64) FPC_ARCH="x64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
-
- case ${1} in
- bootstrap) pp=${WORKDIR}/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;;
- new) pp=${S}/compiler/ppc${FPC_ARCH} ;;
- *) die "set_pp: unknown argument: ${1}" ;;
- esac
-}
-
-src_compile() {
- local pp d
-
- # Using the bootstrap compiler.
- set_pp bootstrap
- make -j1 compiler_cycle PP=${pp} || die "make compiler_cycle failed!"
-
- # Save new compiler from cleaning...
- cp ${S}/compiler/ppc${FPC_ARCH} ${S}/ppc${FPC_ARCH}.new
- # ...rebuild with current version...
- make -j1 compiler_cycle PP=${S}/ppc${FPC_ARCH}.new || die "make compiler_cycle failed!"
- # ..and clean up afterwards
- rm ${S}/ppc${FPC_ARCH}.new
-
- # Using the new compiler.
- set_pp new
-
- # We cannot do this at once!
- for d in rtl packages fcl fv; do
- make -j1 -C $d clean PP=${pp} || die "make -C $d clean failed!"
- done
-
- make -j1 rtl packages_base_all fcl fv packages_extra_all PP=${pp} \
- || die "make rtl packages_base_all fcl packages_extra_all failed!"
-
- make -j1 utils PP=${pp} DATA2INC=${S}/utils/data2inc \
- || die "make utils failed!"
-}
-
-src_install() {
- local pp
- set_pp new
-
- make compiler_install rtl_install fcl_install fv_install \
- packages_install utils_install \
- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \
- INSTALL_PREFIX="${D}usr" || die "make install failed!"
-
- find ${WORKDIR}/fpc/ -type f -perm -o=x -exec rm '{}' \;
- if use "source" ; then
- ebegin "Copying source files"
- # Use rsync since cp doesn't support exclusions
- rsync -a \
- --exclude="*.#*" \
- --exclude="*.bak" \
- --exclude="*.cvsignore" \
- --exclude="*.o" \
- --exclude="*.orig" \
- --exclude="*.ow" \
- --exclude="*.ppl" \
- --exclude="*.ppu" \
- --exclude="*.ppw" \
- --exclude="*.rej" \
- --exclude="*.rst" \
- --exclude="*.xvpics" \
- --exclude="*.~*" \
- --exclude="CVS" \
- --exclude=".svn" \
- --exclude="fpcmade.i386-linux" \
- ${WORKDIR}/fpc/ ${D}usr/lib/fpc/src
- eend $? || die
- fi
-
- if use doc ; then
- insinto /usr/share/doc/${PF}
- doins ${WORKDIR}/fpc-docs-${PV}/*.pdf
- fi
-
- doman ${WORKDIR}/fpc-man-${PV}/man{1,5}/*
-}
-
-pkg_preinst() {
- ${D}/usr/lib/fpc/${PV}/samplecfg /usr/lib/fpc/${PV} ${D}/etc
- case ${ARCH} in
- x86) FPC_ARCH="386" ;;
- ppc) FPC_ARCH="ppc" ;;
- amd64) FPC_ARCH="x64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
- ln -s ../lib/fpc/${PV}/ppc${FPC_ARCH} ${D}/usr/bin/
-}
-
-pkg_postinst() {
- # Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
- if [ -e /etc/._cfg0000_fpc.cfg ]; then
- echo
- ewarn "Make sure you etc-update /etc/fpc.cfg"
- ewarn "Otherwise FPC will not work correctly."
- echo
- ebeep
- fi
- case ${ARCH} in
- x86) FPC_ARCH="386" ;;
- ppc) FPC_ARCH="ppc" ;;
- amd64) FPC_ARCH="x64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
- elog "/usr/bin/ppc${FPC_ARCH} now points to the new binary:"
- elog " /usr/lib/${PN}/${PV}/ppc${FPC_ARCH}"
-}
diff --git a/dev-lang/fpc/fpc-2.0.4.ebuild b/dev-lang/fpc/fpc-2.0.4.ebuild
deleted file mode 100644
index 0a1772f9ffd0..000000000000
--- a/dev-lang/fpc/fpc-2.0.4.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.0.4.ebuild,v 1.7 2008/12/16 19:30:03 truedfx Exp $
-
-inherit eutils
-
-# bug #183604
-RESTRICT="strip"
-
-PV_BIN="2.0.4"
-S="${WORKDIR}/fpcbuild_${PV}_exp/fpcsrc"
-
-HOMEPAGE="http://www.freepascal.org/"
-DESCRIPTION="Free Pascal Compiler"
-SRC_URI="mirror://sourceforge/freepascal/fpcbuild-${PV}.tar.gz
- x86? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.i386-linux.tar )
- sparc? ( mirror://sourceforge/freepascal/fpc-2.0.0.sparc-linux.tar )
- ppc? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.powerpc-linux.tar )
- amd64? ( mirror://sourceforge/freepascal/fpc-${PV_BIN}.x86_64-linux.tar )
- doc? ( mirror://gentoo/fpcdocs-${PV}.tar.bz2 )"
-
-SLOT="0"
-LICENSE="GPL-2 LGPL-2.1 LGPL-2.1-FPC"
-KEYWORDS="~amd64 ~ppc ~sparc ~x86"
-IUSE="doc source"
-
-DEPEND="!dev-lang/fpc-bin
- !dev-lang/fpc-source"
-
-src_unpack() {
- case ${ARCH} in
- x86) FPC_ARCH="i386" ;;
- ppc) FPC_ARCH="powerpc" ;;
- amd64) FPC_ARCH="x86_64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
-
- unpack ${A} || die "Unpacking ${A} failed!"
-
- tar -xf binary.${FPC_ARCH}-linux.tar || die "Unpacking binary.${FPC_ARCH}-linux.tar failed!"
- tar -xzf base.${FPC_ARCH}-linux.tar.gz || die "Unpacking base.${FPC_ARCH}-linux.tar.gz failed!"
-}
-
-set_pp() {
- case ${ARCH} in
- x86) FPC_ARCH="386" ;;
- ppc) FPC_ARCH="ppc" ;;
- amd64) FPC_ARCH="x64" ;;
- sparc) FPC_ARCH="sparc" ;;
- *) die "This ebuild doesn't support ${ARCH}." ;;
- esac
-
- case ${1} in
- bootstrap) pp=${WORKDIR}/lib/fpc/${PV_BIN}/ppc${FPC_ARCH} ;;
- new) pp=${S}/compiler/ppc${FPC_ARCH} ;;
- *) die "set_pp: unknown argument: ${1}" ;;
- esac
-}
-
-src_compile() {
- local pp
-
- # Using the bootstrap compiler.
- set_pp bootstrap
-
- emake -j1 PP="${pp}" compiler_cycle || die "make compiler_cycle failed!"
-
- # Save new compiler from cleaning...
- cp "${S}"/compiler/ppc${FPC_ARCH} "${S}"/ppc${FPC_ARCH}.new
-
- # ...rebuild with current version...
- emake -j1 PP="${S}"/ppc${FPC_ARCH}.new compiler_cycle || die "make compiler_cycle failed!"
-
- # ..and clean up afterwards
- rm "${S}"/ppc${FPC_ARCH}.new
-
- # Using the new compiler.
- set_pp new
-
- emake -j1 PP="${pp}" rtl_clean || die "make rtl_clean failed"
-
- emake -j1 PP="${pp}" rtl packages_base_all fcl fv packages_extra_all utils || die "make failed"
-
- # Use pregenerated docs to avoid sandbox violations (#146804)
- #if use doc ; then
- # cd "${S}"/../fpcdocs
- # emake -j1 pdf || die "make pdf failed!"
- #fi
-}
-
-src_install() {
- local pp
- set_pp new
-
- set -- PP="${pp}" FPCMAKE="${S}/utils/fpcm/fpcmake" \
- INSTALL_PREFIX="${D}"usr \
- INSTALL_DOCDIR="${D}"usr/share/doc/${P} \
- INSTALL_MANDIR="${D}"usr/share/man \
- INSTALL_SOURCEDIR="${D}"/usr/lib/fpc/${PV}/source
-
- emake -j1 "$@" compiler_install rtl_install fcl_install fv_install \
- packages_install utils_install || die "make install failed!"
-
- dosym ../lib/fpc/${PV}/ppc${FPC_ARCH} /usr/bin/ppc${FPC_ARCH}
-
- if ! has nodoc ${FEATURES} ; then
- cd "${S}"/../install/doc
- emake -j1 "$@" installdoc || die "make installdoc failed!"
- fi
-
- if ! has noman ${FEATURES} ; then
- cd "${S}"/../install/man
- emake -j1 "$@" installman || die "make installman failed!"
- fi
-
- if ! has nodoc ${FEATURES} && use doc ; then
- insinto /usr/share/doc/${PF}
- doins "${WORKDIR}"/${P}/*.pdf
- #cd "${S}"/../fpcdocs
- #emake -j1 "$@" pdfinstall || die "make pdfinstall failed"
- fi
-
- if use source ; then
- cd "${S}"
- shift
- emake -j1 PP="${D}"usr/bin/ppc${FPC_ARCH} "$@" sourceinstall || die "make sourceinstall failed!"
- fi
-
- "${D}"usr/lib/fpc/${PV}/samplecfg /usr/lib/fpc/${PV} "${D}"etc
-
- rm -rf "${D}"usr/lib/fpc/lexyacc
-}
-
-pkg_postinst() {
- # Using ewarn - it is really important for other ebuilds (e.g. Lazarus)
- if [ -e /etc/._cfg0000_fpc.cfg ]; then
- echo
- ewarn "Make sure you etc-update /etc/fpc.cfg"
- ewarn "Otherwise FPC will not work correctly."
- echo
- ebeep
- fi
-
- ewarn "The default configuration for fpc strips executables. This"
- ewarn "will cause QA notices in ebuilds for software using fpc."
- ewarn "You can remove -Xs from /etc/fpc.cfg to avoid this."
-}
diff --git a/dev-lang/fpc/fpc-2.2.2.ebuild b/dev-lang/fpc/fpc-2.2.2-r1.ebuild
index 50203e8278ac..688bef283933 100644
--- a/dev-lang/fpc/fpc-2.2.2.ebuild
+++ b/dev-lang/fpc/fpc-2.2.2-r1.ebuild
@@ -1,12 +1,9 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.2.2.ebuild,v 1.3 2008/12/16 19:30:03 truedfx Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-2.2.2-r1.ebuild,v 1.1 2009/03/14 17:29:50 truedfx Exp $
inherit eutils
-# bug #183604
-RESTRICT="strip"
-
S="${WORKDIR}/fpcbuild-${PV}/fpcsrc"
HOMEPAGE="http://www.freepascal.org/"
@@ -25,6 +22,9 @@ IUSE="doc source"
DEPEND="!dev-lang/fpc-bin
!dev-lang/fpc-source"
+RDEPEND="${DEPEND}"
+DEPEND="${DEPEND}
+ >=sys-devel/binutils-2.19.1-r1"
src_unpack() {
case ${ARCH} in
@@ -42,6 +42,8 @@ src_unpack() {
cd "${S}"
epatch "${FILESDIR}"/${P}-unneeded-symbols.patch
+ epatch "${FILESDIR}"/${P}-execstack.patch
+ sed -i -e 's/ -Xs / /g' $(find . -name Makefile) || die "sed failed"
}
set_pp() {