diff -Naurp perl-5.8.8-orig/lib/ExtUtils/Liblist.pm perl-5.8.8/lib/ExtUtils/Liblist.pm
--- perl-5.8.8-orig/lib/ExtUtils/Liblist.pm	2003-04-07 14:58:17.000000000 -0400
+++ perl-5.8.8/lib/ExtUtils/Liblist.pm	2006-02-07 09:57:04.000000000 -0500
@@ -87,6 +87,11 @@ libraries.  LD_RUN_PATH is a colon separ
 in LDLOADLIBS. It is passed as an environment variable to the process
 that links the shared library.
 
+The Red Hat extension: This generation of LD_RUN_PATH is disabled by default.
+To use the generated LD_RUN_PATH for all links, set the USE_MM_LD_RUN_PATH
+MakeMaker object attribute / argument, (or set the $USE_MM_LD_RUN_PATH
+environment variable).
+
 =head2 BSLOADLIBS
 
 List of those libraries that are needed but can be linked in
diff -Naurp perl-5.8.8-orig/lib/ExtUtils/MM_Unix.pm perl-5.8.8/lib/ExtUtils/MM_Unix.pm
--- perl-5.8.8-orig/lib/ExtUtils/MM_Unix.pm	2005-05-21 05:42:56.000000000 -0400
+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm	2006-02-07 09:56:08.000000000 -0500
@@ -941,7 +941,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $
     }
 
     my $ld_run_path_shell = "";
-    if ($self->{LD_RUN_PATH} ne "") {
+	if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) {
 	$ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
     }
 
diff -Naurp perl-5.8.8-orig/lib/ExtUtils/MakeMaker.pm perl-5.8.8/lib/ExtUtils/MakeMaker.pm
--- perl-5.8.8-orig/lib/ExtUtils/MakeMaker.pm	2005-10-21 10:11:04.000000000 -0400
+++ perl-5.8.8/lib/ExtUtils/MakeMaker.pm	2006-02-07 09:55:03.000000000 -0500
@@ -233,7 +233,7 @@ sub full_setup {
     PERL_SRC PERM_RW PERM_RWX
     PL_FILES PM PM_FILTER PMLIBDIRS POLLUTE PPM_INSTALL_EXEC
     PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
-    SIGN SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG
+	SKIP TYPEMAPS USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS XSOPT XSPROTOARG
     XS_VERSION clean depend dist dynamic_lib linkext macro realclean
     tool_autosplit
 
@@ -371,6 +371,26 @@ sub new {
         exit 0;
    }
 
+    # USE_MM_LD_RUN_PATH - borrowed from RedHat to disable automatic RPATH generation
+    if ( ( ! $self->{USE_MM_LD_RUN_PATH} )
+       &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/)
+        ||( exists( $ENV{USE_MM_LD_RUN_PATH} )
+           &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ )
+           )
+        )
+       )
+    {
+       my $v = $1;
+       if( $v )
+       {
+           $v = ($v=~/=([01])$/)[0];
+       }else
+       {
+           $v = 1;
+       };
+       $self->{USE_MM_LD_RUN_PATH}=$v;
+    };
+
     print STDOUT "MakeMaker (v$VERSION)\n" if $Verbose;
     if (-f "MANIFEST" && ! -f "Makefile"){
         check_manifest();
@@ -2057,6 +2077,44 @@ precedence.  A typemap in the current di
 precedence, even if it isn't listed in TYPEMAPS.  The default system
 typemap has lowest precedence.
 
+=item USE_MM_LD_RUN_PATH
+
+boolean
+This feature is borrowed from Red Hat to deal with RPATH issues.
+Please see bug 81745 - http://bugs.gentoo.org/81745 - for more
+information.
+
+The Red Hat perl MakeMaker distribution differs from the standard
+upstream release in that it disables use of the MakeMaker generated
+LD_RUN_PATH by default, UNLESS this attribute is specified , or the
+USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run.
+
+The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH
+to the concatenation of every -L ld(1) option directory in which a -l ld(1)
+option library is found, which is used as the ld(1) -rpath option if none
+is specified. This means that, if your application builds shared libraries
+and your MakeMaker application links to them, that the absolute paths of the
+libraries in the build tree will be inserted into the RPATH header of all
+MakeMaker generated binaries, and that such binaries will be unable to link
+to these libraries if they do not still reside in the build tree directories
+(unlikely) or in the system library directories (/lib or /usr/lib), regardless
+of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and
+your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib,
+your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH
+is set to include /some_directory_other_than_usr_lib, because RPATH overrides
+LD_LIBRARY_PATH.
+
+So for Red Hat MakeMaker builds LD_RUN_PATH is NOT generated by default for
+every link. You can still use explicit -rpath ld options or the LD_RUN_PATH
+environment variable during the build to generate an RPATH for the binaries.
+
+You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command
+line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH
+for every link command.
+
+USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the
+$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run.
+
 =item VENDORPREFIX
 
 Like PERLPREFIX, but only for the vendor install locations.
