Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Perl: porters

[perl #54120] [PATCH] [metaconfig] Need more -fstack-protector

 

 

Perl porters RSS feed   Index | Next | Previous | View Threaded


perlbug-followup at perl

May 13, 2008, 9:37 AM

Post #1 of 2 (97 views)
Permalink
[perl #54120] [PATCH] [metaconfig] Need more -fstack-protector

# New Ticket Created by Andy Dougherty
# Please include the string: [perl #54120]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=54120 >


This patch ensures that if we are using -fstack-protector, it is also
propagated to lddlflags. I did not set lddlflags inside ccflags.U because
that fooled the later dlsrc.U unit into thinking that lddlflags was
already set.

Without this patch, I was getting error messages like:

Can't load '../lib/auto/File/Glob/Glob.so' for module File::Glob:
../lib/auto/File/Glob/Glob.so: undefined symbol:
__stack_chk_fail_local at ../lib/XSLoader.pm line 64.

(This was on Debian 4.0 on x86.)


diff -r -u metaconfig/U/compline/ccflags.U metaconfig-andy/U/compline/ccflags.U
--- metaconfig/U/compline/ccflags.U 2008-01-09 11:36:02.000000000 -0500
+++ metaconfig-andy/U/compline/ccflags.U 2008-05-13 09:17:36.000000000 -0400
@@ -230,7 +230,7 @@
# as that way the compiler can do the right implementation dependant
# thing. (NWC)
case "$gccversion" in
- ?*) set stack-protector -fstack-protector 'ldflags="$ldflags -fstack-protector"'
+ ?*) set stack-protector -fstack-protector
eval $checkccflag
;;
esac
@@ -377,6 +377,10 @@
case "$ccflags" in
*-posix*) dflt="$dflt -posix" ;;
esac
+ # See note above about -fstack-protector
+ case "$ccflags" in
+ *-fstack-protector*) dflt="$dflt -fstack-protector" ;;
+ esac
;;
*) dflt="$ldflags";;
esac
diff -r -u metaconfig/U/perl/dlsrc.U metaconfig-andy/U/perl/dlsrc.U
--- metaconfig/U/perl/dlsrc.U 2008-01-10 13:47:30.000000000 -0500
+++ metaconfig-andy/U/perl/dlsrc.U 2008-05-13 09:22:11.000000000 -0400
@@ -248,6 +248,16 @@
''|' ') dflt='none' ;;
esac

+ case "$ldflags" in
+ *-fstack-protector*)
+ case "$dflt" in
+ *-fstack-protector*) ;; # Don't add it again
+ *) dflt="$dflt -fstack-protector" ;;
+ esac
+ ;;
+ esac
+
+
rp="Any special flags to pass to $ld to create a dynamically loaded library?"
. ./myread
case "$ans" in

--
Andy Dougherty doughera[at]lafayette.edu


h.m.brand at xs4all

May 17, 2008, 6:56 AM

Post #2 of 2 (76 views)
Permalink
Re: [perl #54120] [PATCH] [metaconfig] Need more -fstack-protector [In reply to]

On Tue, 13 May 2008 09:37:07 -0700, Andy Dougherty (via RT)
<perlbug-followup[at]perl.org> wrote:

> # New Ticket Created by Andy Dougherty
> # Please include the string: [perl #54120]
> # in the subject line of all future correspondence about this issue.
> # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=54120 >
>
>
> This patch ensures that if we are using -fstack-protector, it is also
> propagated to lddlflags. I did not set lddlflags inside ccflags.U because
> that fooled the later dlsrc.U unit into thinking that lddlflags was
> already set.

Thanks applied.
Configure regenerated in #33843

> Without this patch, I was getting error messages like:
>
> Can't load '../lib/auto/File/Glob/Glob.so' for module File::Glob:
> ../lib/auto/File/Glob/Glob.so: undefined symbol:
> __stack_chk_fail_local at ../lib/XSLoader.pm line 64.
>
> (This was on Debian 4.0 on x86.)
>
>
> diff -r -u metaconfig/U/compline/ccflags.U metaconfig-andy/U/compline/ccflags.U
> --- metaconfig/U/compline/ccflags.U 2008-01-09 11:36:02.000000000 -0500
> +++ metaconfig-andy/U/compline/ccflags.U 2008-05-13 09:17:36.000000000 -0400
> @@ -230,7 +230,7 @@
> # as that way the compiler can do the right implementation dependant
> # thing. (NWC)
> case "$gccversion" in
> - ?*) set stack-protector -fstack-protector 'ldflags="$ldflags -fstack-protector"'
> + ?*) set stack-protector -fstack-protector
> eval $checkccflag
> ;;
> esac
> @@ -377,6 +377,10 @@
> case "$ccflags" in
> *-posix*) dflt="$dflt -posix" ;;
> esac
> + # See note above about -fstack-protector
> + case "$ccflags" in
> + *-fstack-protector*) dflt="$dflt -fstack-protector" ;;
> + esac
> ;;
> *) dflt="$ldflags";;
> esac
> diff -r -u metaconfig/U/perl/dlsrc.U metaconfig-andy/U/perl/dlsrc.U
> --- metaconfig/U/perl/dlsrc.U 2008-01-10 13:47:30.000000000 -0500
> +++ metaconfig-andy/U/perl/dlsrc.U 2008-05-13 09:22:11.000000000 -0400
> @@ -248,6 +248,16 @@
> ''|' ') dflt='none' ;;
> esac
>
> + case "$ldflags" in
> + *-fstack-protector*)
> + case "$dflt" in
> + *-fstack-protector*) ;; # Don't add it again
> + *) dflt="$dflt -fstack-protector" ;;
> + esac
> + ;;
> + esac
> +
> +
> rp="Any special flags to pass to $ld to create a dynamically loaded library?"
> . ./myread
> case "$ans" in
>


--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.10.x on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin. http://qa.perl.org
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org
http://www.goldmark.org/jeff/stupid-disclaimers/

Perl porters RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.