summaryrefslogtreecommitdiff
path: root/devel/gprbuild-aux
diff options
context:
space:
mode:
authormarino <marino@pkgsrc.org>2012-07-08 20:08:42 +0000
committermarino <marino@pkgsrc.org>2012-07-08 20:08:42 +0000
commit49f1e502e32382d78136b6f409adaedce18f5948 (patch)
tree71e3b806c8723477642f3a24d00dd51c7088942c /devel/gprbuild-aux
parent794849a1032db23edd4b0a08a09dcdad36b9a2fe (diff)
downloadpkgsrc-49f1e502e32382d78136b6f409adaedce18f5948.tar.gz
devel/gprbuild-aux: Upgrade to version GPL 2012
1) Replace custom tarball with Adacore's GPL 2012 release 2) Update license to GPLv3 3) Remove lang/gnat-aux dependency 4) USE_LANGUAGES+= ada (invokes lang/gcc-aux dependency) 5) Update buildlink3.mk to require GPL 2012 version 6) Restore use of pkgsrc wrappers 7) Add Library_Option "-R" support which ignores all automatically generated rpaths* which point to the WRKOBJDIR. DESTDIR isn't supported by GPRBuild, so this rpath disabling is necessary to avoid references to work directories. * gcc and adalib rpaths are excluded with -R option. 8) This Library_Option "-R" matches the same modification added to lang/gcc-aux and lang/gnat-aux's project handler. 9) This modification is required to fix www/aws rpath issues which appears with recent changes to PKG_DEVELOPER=yes checks.
Diffstat (limited to 'devel/gprbuild-aux')
-rw-r--r--devel/gprbuild-aux/DESCR4
-rw-r--r--devel/gprbuild-aux/Makefile28
-rw-r--r--devel/gprbuild-aux/PLIST4
-rw-r--r--devel/gprbuild-aux/buildlink3.mk4
-rw-r--r--devel/gprbuild-aux/distinfo17
-rw-r--r--devel/gprbuild-aux/patches/patch-Makefile.in69
-rw-r--r--devel/gprbuild-aux/patches/patch-gprbuild.gpr13
-rw-r--r--devel/gprbuild-aux/patches/patch-share_gprconfig_compilers.xml25
-rw-r--r--devel/gprbuild-aux/patches/patch-share_gprconfig_gnat.xml22
-rw-r--r--devel/gprbuild-aux/patches/patch-share_gprconfig_linker.xml65
-rw-r--r--devel/gprbuild-aux/patches/patch-share_gprconfig_targetset.xml46
-rw-r--r--devel/gprbuild-aux/patches/patch-src_gprlib.adb39
12 files changed, 308 insertions, 28 deletions
diff --git a/devel/gprbuild-aux/DESCR b/devel/gprbuild-aux/DESCR
index 40e4e16179e..4e6df35954e 100644
--- a/devel/gprbuild-aux/DESCR
+++ b/devel/gprbuild-aux/DESCR
@@ -6,7 +6,3 @@ Ada, Assembler, C, C++, and Fortran. Easily extendable by users to cover
new toolchains and languages it is primarily aimed at projects of all sizes
organized into subsystems and libraries and is particularly well suited for
compiled languages.
-
-GPRbuild-AUX is a customized version of GPRbuild that exists solely for the
-use with the GNAT AUX compiler, and not with the FSF or GPL versions of the
-GNAT compiler.
diff --git a/devel/gprbuild-aux/Makefile b/devel/gprbuild-aux/Makefile
index cffc9f410ec..02d9cb51b90 100644
--- a/devel/gprbuild-aux/Makefile
+++ b/devel/gprbuild-aux/Makefile
@@ -1,34 +1,32 @@
-# $NetBSD: Makefile,v 1.1.1.1 2011/02/03 19:04:02 drochner Exp $
+# $NetBSD: Makefile,v 1.2 2012/07/08 20:08:42 marino Exp $
#
DISTNAME= gprbuild-aux-${SNAPSHOT}
CATEGORIES= devel
MASTER_SITES= http://downloads.dragonlace.net/src/ \
http://dragonlace.mirrors.ada.cx/src/
-EXTRACT_SUFX= .tar.bz2
+DISTFILES= gprbuild-gpl-2012-src.tgz
MAINTAINER= draco@marino.st
HOMEPAGE= http://www.adacore.com/home/products/gnatpro/toolsuite/gprbuild/
COMMENT= Adacore multi-language software build tool
-LICENSE= gnu-gpl-v2
+LICENSE= gnu-gpl-v3
PKG_DESTDIR_SUPPORT= user-destdir
-SNAPSHOT= 20101120
+
+SNAPSHOT= 20120510
GNU_CONFIGURE= yes
-USE_LANGUAGES= c # Ada is not option.
+USE_LANGUAGES= c ada
USE_TOOLS= gmake
MAKE_ENV+= ADA_PROJECT_PATH=${PREFIX}/lib/gnat
-#CONFIGURE_ENV+= CC=gnatgcc
-
-# no special configuration options necessary
-pre-configure:
- # explicitly request GNAT-AUX compiler (required by XML/Ada too)
- # It is done here to fool tough pkgsrc compiler checks
- ${SETENV} CC=gnatgcc
+CONFIGURE_ENV+= ADA_PROJECT_PATH=${PREFIX}/lib/gnat
+WRKSRC= ${WRKDIR}/gprbuild-2012-src
-do-wrapper:
- # GPRbuild has a linkage problem while using standard wrappers
- ${ECHO} "## Wrappers are intentionally disabled ##"
+SUBST_CLASSES+= xml
+SUBST_STAGE.xml= pre-configure
+SUBST_MESSAGE.xml= Edit compilers.xml to support lang/gcc-aux runtime
+SUBST_FILES.xml= share/gprconfig/compilers.xml
+SUBST_SED.xml= -e "s,@AUXPREFIX@,${PREFIX}/gcc-aux,"
.include "../../textproc/xmlada/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/devel/gprbuild-aux/PLIST b/devel/gprbuild-aux/PLIST
index b623af278e3..daafc3f0015 100644
--- a/devel/gprbuild-aux/PLIST
+++ b/devel/gprbuild-aux/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.1.1.1 2011/02/03 19:04:02 drochner Exp $
+@comment $NetBSD: PLIST,v 1.2 2012/07/08 20:08:42 marino Exp $
bin/gprbuild
bin/gprclean
bin/gprconfig
@@ -28,6 +28,7 @@ share/examples/gprbuild/ada_cpp/src2/animals.adb
share/examples/gprbuild/ada_cpp/src2/animals.ads
share/examples/gprbuild/ada_cpp/src2/animals.h
share/examples/gprbuild/ada_cpp/src2/animals_c.cc
+share/examples/gprbuild/ada_cpp/src2/animals_interfaces.ads
share/examples/gprbuild/ada_cpp/src2/main.adb
share/examples/gprbuild/ada_f77/Makefile
share/examples/gprbuild/ada_f77/ess.f
@@ -126,6 +127,7 @@ share/gprconfig/cpp.xml
share/gprconfig/cross.xml
share/gprconfig/fortran.xml
share/gprconfig/gnat.xml
+share/gprconfig/gprconfig.xsd
share/gprconfig/linker.xml
share/gprconfig/nocompiler.xml
share/gprconfig/targetset.xml
diff --git a/devel/gprbuild-aux/buildlink3.mk b/devel/gprbuild-aux/buildlink3.mk
index 08f55466d16..523e7666f05 100644
--- a/devel/gprbuild-aux/buildlink3.mk
+++ b/devel/gprbuild-aux/buildlink3.mk
@@ -1,11 +1,11 @@
-# $NetBSD: buildlink3.mk,v 1.1.1.1 2011/02/03 19:04:02 drochner Exp $
+# $NetBSD: buildlink3.mk,v 1.2 2012/07/08 20:08:42 marino Exp $
BUILDLINK_TREE+= gprbuild-aux
.if !defined(GPRBUILD_AUX_BUILDLINK3_MK)
GPRBUILD_AUX_BUILDLINK3_MK:=
-BUILDLINK_API_DEPENDS.gprbuild-aux+= gprbuild-aux>=20101120
+BUILDLINK_API_DEPENDS.gprbuild-aux+= gprbuild-aux>=20120510
BUILDLINK_PKGSRCDIR.gprbuild-aux?= ../../devel/gprbuild-aux
.include "../../textproc/xmlada/buildlink3.mk"
diff --git a/devel/gprbuild-aux/distinfo b/devel/gprbuild-aux/distinfo
index d1b4fa8d9ab..3d2d8e26fee 100644
--- a/devel/gprbuild-aux/distinfo
+++ b/devel/gprbuild-aux/distinfo
@@ -1,7 +1,12 @@
-$NetBSD: distinfo,v 1.2 2011/10/04 21:38:21 marino Exp $
+$NetBSD: distinfo,v 1.3 2012/07/08 20:08:42 marino Exp $
-SHA1 (gprbuild-aux-20101120.tar.bz2) = 84629d790c4f9479fdce6ec6e6f732fa60089afb
-RMD160 (gprbuild-aux-20101120.tar.bz2) = 560185e9733af77c4a6e9c37e510765e30b438ad
-Size (gprbuild-aux-20101120.tar.bz2) = 1470482 bytes
-SHA1 (patch-aa) = 1fe9a3055551696ad5b090b661a2ed3a3b66ddee
-SHA1 (patch-ab) = cbc34ed39826b55bc1ac41fa21fffc50f1f7cdd1
+SHA1 (gprbuild-gpl-2012-src.tgz) = 08fabf7ee1d49c00ef20c271239df1d64f56da11
+RMD160 (gprbuild-gpl-2012-src.tgz) = f1f1ef5e6de2faff5765eeeee4ddb382a00c911e
+Size (gprbuild-gpl-2012-src.tgz) = 2159669 bytes
+SHA1 (patch-Makefile.in) = 730c4b7a0a6b7f89b6f0639dbd91417c9d02789e
+SHA1 (patch-gprbuild.gpr) = abb482bc9dc2de967ad4a2e0bfa6fc562490bd0a
+SHA1 (patch-share_gprconfig_compilers.xml) = d64a8e27372bbc1abbbf1b5d44a6b2bb4671036b
+SHA1 (patch-share_gprconfig_gnat.xml) = 5e0ddcec2d46cbf0486556889845e10fab441ad8
+SHA1 (patch-share_gprconfig_linker.xml) = ad99b1d6f0d9199ca202f1dea2f7d0c8ffa5c3d3
+SHA1 (patch-share_gprconfig_targetset.xml) = 2bc382633eec715381fdfb5ac8e82edf026af5ad
+SHA1 (patch-src_gprlib.adb) = 9c3cf8116800ea6bd2741fa0da522e9886b7bcf1
diff --git a/devel/gprbuild-aux/patches/patch-Makefile.in b/devel/gprbuild-aux/patches/patch-Makefile.in
new file mode 100644
index 00000000000..f9c90222a1d
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-Makefile.in
@@ -0,0 +1,69 @@
+$NetBSD: patch-Makefile.in,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- Makefile.in.orig 2012-01-04 15:36:14.000000000 +0000
++++ Makefile.in
+@@ -19,7 +19,7 @@ EXEXT=
+ endif
+ CP=cp -p
+ MKDIR=mkdir -p
+-BUILD=debug
++BUILD=production
+
+ prefix=@prefix@
+ srcdir=@srcdir@
+@@ -124,37 +124,35 @@ bootstrap-clean:
+ -XBUILD_TOOL=gprbuild
+
+ install: install.data install.bin
+- -${MKDIR} ${datadir}/gpr
+- $(RM) -r ${datadir}/examples/gprbuild
+- -${MKDIR} ${datadir}/examples/gprbuild
+- ${CP} -r examples/* ${datadir}/examples/gprbuild
+- ${RM} -r ${datadir}/doc/gprbuild
+- -${MKDIR} ${datadir}/doc/gprbuild
++ -${MKDIR} ${DESTDIR}${datadir}/gpr
++ -${MKDIR} ${DESTDIR}${datadir}/examples/gprbuild
++ ${CP} -r examples/* ${DESTDIR}${datadir}/examples/gprbuild
++ -${MKDIR} ${DESTDIR}${datadir}/doc/gprbuild
+ for format in html txt pdf info; do \
+ if [ -d doc/$$format ] ; then \
+- ${MKDIR} ${datadir}/doc/gprbuild/$$format; \
+- ${CP} doc/$$format/* ${datadir}/doc/gprbuild/$$format; \
++ ${MKDIR} ${DESTDIR}${datadir}/doc/gprbuild/$$format; \
++ ${CP} doc/$$format/* ${DESTDIR}${datadir}/doc/gprbuild/$$format; \
+ if [ $$format = html ] ; then \
+- ${CP} doc/*.png ${datadir}/doc/gprbuild/html; \
++ ${CP} doc/*.png ${DESTDIR}${datadir}/doc/gprbuild/html; \
+ sed -e "s/<doc_path>.*//" doc/gprbuild_gps.xml \
+- > ${datadir}/doc/gprbuild/html/gps_index.xml; \
++ > ${DESTDIR}${datadir}/doc/gprbuild/html/gps_index.xml; \
+ fi; \
+ fi; \
+ done
+
+ install.data: force
+- -${MKDIR} ${datadir}/gprconfig
+- ${CP} share/gprconfig/*.xml ${datadir}/gprconfig
+- ${CP} share/gprconfig/gprconfig.xsd ${datadir}/gprconfig
++ -${MKDIR} ${DESTDIR}${datadir}/gprconfig
++ ${INSTALL_DATA} share/gprconfig/*.xml ${DESTDIR}${datadir}/gprconfig
++ ${INSTALL_DATA} share/gprconfig/gprconfig.xsd ${DESTDIR}${datadir}/gprconfig
+
+ install.bin: force
+- -${MKDIR} ${bindir}
+- ${INSTALL_PROGRAM} gprconfig${EXEXT} ${bindir}
+- ${INSTALL_PROGRAM} gprbuild${EXEXT} ${bindir}
+- ${INSTALL_PROGRAM} gprclean${EXEXT} ${bindir}
+- -${MKDIR} ${libexecdir}/gprbuild
+- ${INSTALL_PROGRAM} gprbind${EXEXT} ${libexecdir}/gprbuild/
+- ${INSTALL_PROGRAM} gprlib${EXEXT} ${libexecdir}/gprbuild/
++ -${MKDIR} ${DESTDIR}${bindir}
++ ${INSTALL_PROGRAM} gprconfig${EXEXT} ${DESTDIR}${bindir}
++ ${INSTALL_PROGRAM} gprbuild${EXEXT} ${DESTDIR}${bindir}
++ ${INSTALL_PROGRAM} gprclean${EXEXT} ${DESTDIR}${bindir}
++ -${MKDIR} ${DESTDIR}${libexecdir}/gprbuild
++ ${INSTALL_PROGRAM} gprbind${EXEXT} ${DESTDIR}${libexecdir}/gprbuild/
++ ${INSTALL_PROGRAM} gprlib${EXEXT} ${DESTDIR}${libexecdir}/gprbuild/
+
+ $(objdir)/gprbuild_dummies.o: src/gprbuild_dummies.c
+ gcc -c -o $@ $<
diff --git a/devel/gprbuild-aux/patches/patch-gprbuild.gpr b/devel/gprbuild-aux/patches/patch-gprbuild.gpr
new file mode 100644
index 00000000000..1cc6ed206bb
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-gprbuild.gpr
@@ -0,0 +1,13 @@
+$NetBSD: patch-gprbuild.gpr,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- gprbuild.gpr.orig 2012-05-10 13:59:06.000000000 +0000
++++ gprbuild.gpr
+@@ -80,7 +80,7 @@ project Gprbuild is
+ ("-pg", "-g");
+ when "production" =>
+ for Default_Switches ("Ada") use common_switches &
+- ("-O2", "-gnatpn", "-gnatws");
++ ("-g", "-O2", "-gnatpn", "-gnatws");
+ end case;
+ end Compiler;
+
diff --git a/devel/gprbuild-aux/patches/patch-share_gprconfig_compilers.xml b/devel/gprbuild-aux/patches/patch-share_gprconfig_compilers.xml
new file mode 100644
index 00000000000..c7fa71c06be
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-share_gprconfig_compilers.xml
@@ -0,0 +1,25 @@
+$NetBSD: patch-share_gprconfig_compilers.xml,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- share/gprconfig/compilers.xml.orig 2012-03-28 13:32:23.000000000 +0000
++++ share/gprconfig/compilers.xml
+@@ -418,16 +418,15 @@
+ </version>
+ <languages>Ada</languages>
+ <variable name="gcc_version">
+- <external>${PREFIX}gcc -v</external>
++ <external>${PREFIX}ada -v</external>
+ <grep regexp="^gcc \S+ (\S+)" group="1"></grep>
+ </variable>
+ <runtimes default="default,kernel,native">
+- <directory group="default" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/adalib/</directory>
+- <directory group="default" contents="^rts-">\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/ada_object_path</directory>
+- <directory group="2" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/rts-(.*)/adalib/</directory>
++ <directory group="default">\.\./lib/gcc/$TARGET/$gcc_version/adalib</directory>
++ <directory group="0">@AUXPREFIX@/lib/gcc/$TARGET/$gcc_version/adalib</directory>
+ </runtimes>
+ <target>
+- <external>${PREFIX}gcc -dumpmachine</external>
++ <external>${PREFIX}ada -dumpmachine</external>
+ <grep regexp="[^\r\n]+"></grep>
+ </target>
+ </compiler_description>
diff --git a/devel/gprbuild-aux/patches/patch-share_gprconfig_gnat.xml b/devel/gprbuild-aux/patches/patch-share_gprconfig_gnat.xml
new file mode 100644
index 00000000000..b6fd155ad2d
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-share_gprconfig_gnat.xml
@@ -0,0 +1,22 @@
+$NetBSD: patch-share_gprconfig_gnat.xml,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- share/gprconfig/gnat.xml.orig 2012-03-30 17:17:06.000000000 +0000
++++ share/gprconfig/gnat.xml
+@@ -63,7 +63,7 @@
+ </config>
+ </configuration>
+
+- <!-- GNAT -->
++ <!-- GNAT (tailored to lang/gcc-aux) -->
+ <configuration>
+ &filter_gnat;
+ <config>
+@@ -75,7 +75,7 @@
+ end Naming;
+
+ package Compiler is
+- for Driver ("Ada") use "${PATH(ada)}${PREFIX(ada)}gcc";
++ for Driver ("Ada") use "${PATH(ada)}${PREFIX(ada)}ada";
+ for Language_Kind ("Ada") use "unit_based";
+ for Dependency_Kind ("Ada") use "ALI_File";
+ for Leading_Required_Switches ("Ada") use
diff --git a/devel/gprbuild-aux/patches/patch-share_gprconfig_linker.xml b/devel/gprbuild-aux/patches/patch-share_gprconfig_linker.xml
new file mode 100644
index 00000000000..e06042648d5
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-share_gprconfig_linker.xml
@@ -0,0 +1,65 @@
+$NetBSD: patch-share_gprconfig_linker.xml,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- share/gprconfig/linker.xml.orig 2012-04-11 21:09:08.000000000 +0000
++++ share/gprconfig/linker.xml
+@@ -437,11 +437,14 @@
+ </config>
+ </configuration>
+
+- <!-- linux, freebsd and Irix-->
++ <!-- linux, bsd and Irix-->
+ <configuration>
+ <targets>
+ <target name="^.*linux.*$" />
+ <target name="^.*freebsd.*$" />
++ <target name="^.*dragonfly.*$" />
++ <target name="^.*openbsd.*$" />
++ <target name="^.*netbsd.*$" />
+ <target name="^.*irix.*$" />
+ </targets>
+ <config>
+@@ -487,10 +490,13 @@
+ </config>
+ </configuration>
+
+- <!-- freebsd -->
++ <!-- bsd -->
+ <configuration>
+ <targets>
+ <target name="^.*freebsd.*$" />
++ <target name="^.*dragonfly.*$" />
++ <target name="^.*openbsd.*$" />
++ <target name="^.*netbsd.*$" />
+ </targets>
+ <config>
+ for Run_Path_Option use ("-Wl,-rpath,");
+@@ -781,6 +787,9 @@
+ <target name="^.*mingw.*$" />
+ <target name="^.*linux.*$" />
+ <target name="^.*freebsd.*$" />
++ <target name="^.*dragonfly.*$" />
++ <target name="^.*openbsd.*$" />
++ <target name="^.*netbsd.*$" />
+ </targets>
+ <compilers negate="true">
+ <compiler language="C++" />
+@@ -820,6 +829,9 @@
+ <target name="^.*mingw.*$" />
+ <target name="^.*linux.*$" />
+ <target name="^.*freebsd.*$" />
++ <target name="^.*dragonfly.*$" />
++ <target name="^.*openbsd.*$" />
++ <target name="^.*netbsd.*$" />
+ </targets>
+ <compilers negate="true">
+ <compiler language="C++" />
+@@ -859,6 +871,9 @@
+ <target name="^.*mingw.*$" />
+ <target name="^.*linux.*$" />
+ <target name="^.*freebsd.*$" />
++ <target name="^.*dragonfly.*$" />
++ <target name="^.*openbsd.*$" />
++ <target name="^.*netbsd.*$" />
+ </targets>
+ <compilers>
+ <compiler language="C++" />
diff --git a/devel/gprbuild-aux/patches/patch-share_gprconfig_targetset.xml b/devel/gprbuild-aux/patches/patch-share_gprconfig_targetset.xml
new file mode 100644
index 00000000000..72b84840410
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-share_gprconfig_targetset.xml
@@ -0,0 +1,46 @@
+$NetBSD: patch-share_gprconfig_targetset.xml,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- share/gprconfig/targetset.xml.orig 2011-10-20 17:41:48.000000000 +0000
++++ share/gprconfig/targetset.xml
+@@ -52,8 +52,8 @@
+
+ <!-- x86-solaris -->
+ <targetset>
+- <target>x86-solaris</target>
+- <target>i.86-(pc-)?solaris.*</target>
++ <target>i.86-.*-solaris.*</target>
++ <target>x86_64-.*-solaris.*</target>
+ </targetset>
+
+ <!-- x86-windows (mingw) -->
+@@ -144,10 +144,29 @@
+
+ <!-- Freebsd -->
+ <targetset>
+- <target>x86-freebsd</target>
+ <target>i.86-.*freebsd.*</target>
++ <target>x86_64-.*-freebsd.*</target>
+ </targetset>
+
++ <!-- DragonFlyBSD -->
++ <targetset>
++ <target>i.86-.*-dragonfly.*</target>
++ <target>x86_64-.*-dragonfly.*</target>
++ </targetset>
++
++ <!-- NetBSD -->
++ <targetset>
++ <target>i.86-.*-netbsd.*</target>
++ <target>x86_64-.*-netbsd.*</target>
++ </targetset>
++
++ <!-- OpenBSD -->
++ <targetset>
++ <target>i.86-.*-openbsd.*</target>
++ <target>x86_64-.*-openbsd.*</target>
++ </targetset>
++
++
+ <!-- Cross Ports -->
+ <!-- *********** -->
+
diff --git a/devel/gprbuild-aux/patches/patch-src_gprlib.adb b/devel/gprbuild-aux/patches/patch-src_gprlib.adb
new file mode 100644
index 00000000000..9aa7ce011ce
--- /dev/null
+++ b/devel/gprbuild-aux/patches/patch-src_gprlib.adb
@@ -0,0 +1,39 @@
+$NetBSD: patch-src_gprlib.adb,v 1.1 2012/07/08 20:08:42 marino Exp $
+
+--- src/gprlib.adb.orig 2012-05-10 13:59:05.000000000 +0000
++++ src/gprlib.adb
+@@ -390,6 +390,11 @@ procedure Gprlib is
+
+ Separate_Run_Path_Options : Boolean := False;
+
++ Rpath_Disabled : Boolean := False;
++ -- If -R is passed through the library options for the linker, it will
++ -- prevent the implemented libraries portion of the rpath switch from
++ -- being built, even if the linker is capable of supporting rpath.
++
+ Rpath : String_List_Access := null;
+ -- Allocated only if Path Option is supported
+
+@@ -1009,7 +1014,12 @@ begin
+ Use_GNAT_Lib := False;
+ end if;
+
+- Library_Options_Table.Append (new String'(Line (1 .. Last)));
++ if Line (1 .. Last) = "-R" then
++ Rpath_Disabled := True;
++ else
++ Library_Options_Table.Append
++ (new String'(Line (1 .. Last)));
++ end if;
+
+ when Library_Path =>
+ Osint.Fail ("library path should not be specified");
+@@ -2127,7 +2137,7 @@ begin
+ Library_Switches_Table.Append
+ (new String'("-L" & Imported_Library_Directories.Table (J).all));
+
+- if Path_Option /= null then
++ if not Rpath_Disabled and then Path_Option /= null then
+ Add_Rpath (Imported_Library_Directories.Table (J));
+ end if;
+