aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
Diffstat (limited to 'lang')
-rw-r--r--lang/fpc/Makefile2
-rw-r--r--lang/fpc/files/patch-compiler-systems-t_bsd.pas36
2 files changed, 37 insertions, 1 deletions
diff --git a/lang/fpc/Makefile b/lang/fpc/Makefile
index cb1d35814a26..22dcd3f62a43 100644
--- a/lang/fpc/Makefile
+++ b/lang/fpc/Makefile
@@ -3,7 +3,7 @@
PORTNAME= fpc
PORTVERSION= 2.6.2
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES?= lang
MASTER_SITES= ftp://ftp.freepascal.org/pub/fpc/dist/${PORTVERSION}/source/:source \
ftp://planetmirror.com/pub/fpc/dist/${PORTVERSION}/source/:source \
diff --git a/lang/fpc/files/patch-compiler-systems-t_bsd.pas b/lang/fpc/files/patch-compiler-systems-t_bsd.pas
new file mode 100644
index 000000000000..527acf812024
--- /dev/null
+++ b/lang/fpc/files/patch-compiler-systems-t_bsd.pas
@@ -0,0 +1,36 @@
+--- compiler/systems/t_bsd.pas 2012-04-22 14:47:06.000000000 -0500
++++ compiler/systems/t_bsd.pas 2013-10-01 21:07:10.000000000 -0500
+@@ -484,10 +484,19 @@
+ if linklibc and
+ not IsDarwin Then
+ begin
+- if librarysearchpath.FindFile('crtbegin.o',false,s) then
+- LinkRes.AddFileName(s);
+ if librarysearchpath.FindFile('crti.o',false,s) then
+ LinkRes.AddFileName(s);
++ if cs_create_pic in current_settings.moduleswitches then
++ begin
++ if librarysearchpath.FindFile('crtbeginS.o',false,s) then
++ LinkRes.AddFileName(s);
++ end
++ else
++ if (cs_link_staticflag in current_settings.globalswitches) and
++ librarysearchpath.FindFile('crtbeginT.o',false,s) then
++ LinkRes.AddFileName(s)
++ else if librarysearchpath.FindFile('crtbegin.o',false,s) then
++ LinkRes.AddFileName(s);
+ end;
+ { main objectfiles }
+ while not ObjectFiles.Empty do
+@@ -572,7 +581,10 @@
+ if linklibc and
+ not IsDarwin Then
+ begin
+- Fl1:=librarysearchpath.FindFile('crtend.o',false,s1);
++ if cs_create_pic in current_settings.moduleswitches then
++ Fl1:=librarysearchpath.FindFile('crtendS.o',false,s1)
++ else
++ Fl1:=librarysearchpath.FindFile('crtend.o',false,s1);
+ Fl2:=librarysearchpath.FindFile('crtn.o',false,s2);
+ if Fl1 or Fl2 then
+ begin