Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] 5.8.8 Linux needs -FPIC too #8797

Closed
p5pRT opened this issue Feb 22, 2007 · 6 comments
Closed

[PATCH] 5.8.8 Linux needs -FPIC too #8797

p5pRT opened this issue Feb 22, 2007 · 6 comments

Comments

@p5pRT
Copy link

p5pRT commented Feb 22, 2007

Migrated from rt.perl.org#41589 (status was 'resolved')

Searchable as RT41589$

@p5pRT
Copy link
Author

p5pRT commented Feb 22, 2007

From @spotrh

This is a bug report for perl from tcallawa@​redhat.com,
generated with the help of perlbug 1.35 running under perl v5.8.8.


As part of the review process for Perl, I'm opening bugs for the
long list of patches to perl that Fedora has been carrying around
(in some cases, for years), in the hopes that these fixes can be
applied upstream. Unfortunately, I am not the original author of
these patches, so please be patient with me as I attempt to
describe why Fedora uses them.

Linux supports a wide range of architectures, and while most of them
are ok with -fpic, some of them (e.g. SPARC) need -fPIC. To be safe,
Linux should default to -fPIC.

--- perl-5.8.1-RC4/Configure.fpic 2003-08-02 00​:47​:58.000000000
-0400
+++ perl-5.8.1-RC4/Configure 2003-08-02 00​:50​:08.000000000 -0400
@​@​ -7501,7 +7501,7 @​@​
  ;;
  *) case "$osname" in
  darwin) dflt='none' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+ linux*|svr4*|esix*|solaris|nonstopux)
dflt='-fPIC' ;;
  *) dflt='-fpic' ;;
  esac ;;
  esac ;;



Flags​:
  category=core
  severity=medium


This perlbug was built using Perl v5.8.8 in the Red Hat build system.
It is being executed now by Perl v5.8.8 - Wed Jan 24 08​:06​:27 EST 2007.

Site configuration information for perl v5.8.8​:

Configured by Red Hat, Inc. at Wed Jan 24 08​:06​:27 EST 2007.

Summary of my perl5 (revision 5 version 8 subversion 8) configuration​:
  Platform​:
  osname=linux, osvers=2.6.9-42.elsmp,
archname=i386-linux-thread-multi
  uname='linux ls20-bc1-13.build.redhat.com 2.6.9-42.elsmp #1 smp wed
jul 12 23​:32​:02 edt 2006 i686 athlon i386 gnulinux '
  config_args='-des -Doptimize=-O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic
-fasynchronous-unwind-tables -Dversion=5.8.8 -Dmyhostname=localhost
-Dperladmin=root@​localhost -Dcc=gcc -Dcf_by=Red Hat, Inc.
-Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux
-Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads
-Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db
-Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
-Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly
-Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto
-Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto
-Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7
5.8.6 5.8.5 -Dscriptdir=/usr/bin'
  hint=recommended, useposix=true, d_sigaction=define
  usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
  useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
  use64bitint=undef use64bitall=undef uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing
-pipe -Wdeclaration-after-statement -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
  optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386
-mtune=generic -fasynchronous-unwind-tables',
  cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'
  ccversion='', gccversion='4.1.1 20070123 (Red Hat 4.1.1-54)',
gccosandvers=''
  intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
  ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
  alignbytes=4, prototype=define
  Linker and Libraries​:
  ld='gcc', ldflags =' -L/usr/local/lib'
  libpth=/usr/local/lib /lib /usr/lib
  libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread
-lc
  perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
  libc=/lib/libc-2.5.90.so, so=so, useshrplib=true, libperl=libperl.so
  gnulibc_version='2.5.90'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE'
  cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic
-fasynchronous-unwind-tables -L/usr/local/lib'

Locally applied patches​:
 


@​INC for perl v5.8.8​:
  /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
  /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi
  /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi
  /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
  /usr/lib/perl5/site_perl/5.8.8
  /usr/lib/perl5/site_perl/5.8.7
  /usr/lib/perl5/site_perl/5.8.6
  /usr/lib/perl5/site_perl/5.8.5
  /usr/lib/perl5/site_perl
  /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
  /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi
  /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi
  /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
  /usr/lib/perl5/vendor_perl/5.8.8
  /usr/lib/perl5/vendor_perl/5.8.7
  /usr/lib/perl5/vendor_perl/5.8.6
  /usr/lib/perl5/vendor_perl/5.8.5
  /usr/lib/perl5/vendor_perl
  /usr/lib/perl5/5.8.8/i386-linux-thread-multi
  /usr/lib/perl5/5.8.8
  .


Environment for perl v5.8.8​:
  HOME=/home/spot
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)

PATH=/usr/lib/qt-3.3/bin​:/usr/kerberos/bin​:/usr/local/bin​:/usr/bin​:/bin​:/usr/X11R6/bin​:/home/spot/bin​:/usr/java/j2re1.4.2_02/javaws/
  PERL_BADLANG (unset)
  SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Feb 22, 2007

From @Tux

On Thu, 22 Feb 2007 14​:56​:24 -0800, Tom Callaway (via RT)
<perlbug-followup@​perl.org> wrote​:

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

This is a bug report for perl from tcallawa@​redhat.com,
generated with the help of perlbug 1.35 running under perl v5.8.8.

-----------------------------------------------------------------
As part of the review process for Perl, I'm opening bugs for the
long list of patches to perl that Fedora has been carrying around
(in some cases, for years), in the hopes that these fixes can be
applied upstream. Unfortunately, I am not the original author of
these patches, so please be patient with me as I attempt to
describe why Fedora uses them.

I'm glad to see these being added like this.
I'm unable to apply these for the next 10 days, so please
be patient, and if I forget, remind me

Linux supports a wide range of architectures, and while most of them
are ok with -fpic, some of them (e.g. SPARC) need -fPIC. To be safe,
Linux should default to -fPIC.

I /think/ I agree. Please comment from people who know more
about the implications

--- perl-5.8.1-RC4/Configure.fpic 2003-08-02 00​:47​:58.000000000
-0400
+++ perl-5.8.1-RC4/Configure 2003-08-02 00​:50​:08.000000000 -0400
@​@​ -7501,7 +7501,7 @​@​
;;
*) case "$osname" in
darwin) dflt='none' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+ linux*|svr4*|esix*|solaris|nonstopux)
dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
esac ;;

--
H.Merijn Brand Amsterdam Perl Mongers (http​://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.9.x on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.0 & 10.2, AIX 4.3 & 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/

@p5pRT
Copy link
Author

p5pRT commented Feb 22, 2007

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Feb 23, 2007

From @doughera88

On Thu, 22 Feb 2007, Tom Callaway wrote​:

As part of the review process for Perl, I'm opening bugs for the
long list of patches to perl that Fedora has been carrying around
(in some cases, for years), in the hopes that these fixes can be
applied upstream. Unfortunately, I am not the original author of
these patches, so please be patient with me as I attempt to
describe why Fedora uses them.

Thank you for doing this. This sort of feedback from large and diverse
user communities is very helpful.

Linux supports a wide range of architectures, and while most of them
are ok with -fpic, some of them (e.g. SPARC) need -fPIC. To be safe,
Linux should default to -fPIC.

That sounds like a good plan. I haven't tested it for years, but a long
time ago I did find a measurable difference between -fpic and -fPIC.
However, the safer default of -fPIC makes sense. If anyone would care to
test -fpic for a particular architecture and override the default for that
particular architecture, that would be fine too, but as you say, the safer
choice should be the default.

--- perl-5.8.1-RC4/Configure.fpic 2003-08-02 00​:47​:58.000000000
-0400
+++ perl-5.8.1-RC4/Configure 2003-08-02 00​:50​:08.000000000 -0400
@​@​ -7501,7 +7501,7 @​@​
;;
*) case "$osname" in
darwin) dflt='none' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+ linux*|svr4*|esix*|solaris|nonstopux)
dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
esac ;;

-----------------------------------------------------------------

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Mar 9, 2007

From @Tux

On Thu, 22 Feb 2007 14​:56​:24 -0800, Tom Callaway (via RT)
<perlbug-followup@​perl.org> wrote​:

As part of the review process for Perl, I'm opening bugs for the
long list of patches to perl that Fedora has been carrying around
(in some cases, for years), in the hopes that these fixes can be
applied upstream. Unfortunately, I am not the original author of
these patches, so please be patient with me as I attempt to
describe why Fedora uses them.

Thanks, applied in change #30528

Linux supports a wide range of architectures, and while most of them
are ok with -fpic, some of them (e.g. SPARC) need -fPIC. To be safe,
Linux should default to -fPIC.

--- perl-5.8.1-RC4/Configure.fpic 2003-08-02 00​:47​:58.000000000
-0400
+++ perl-5.8.1-RC4/Configure 2003-08-02 00​:50​:08.000000000 -0400
@​@​ -7501,7 +7501,7 @​@​
;;
*) case "$osname" in
darwin) dflt='none' ;;
- svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
+ linux*|svr4*|esix*|solaris|nonstopux) dflt='-fPIC' ;;
*) dflt='-fpic' ;;
esac ;;
esac ;;

--
H.Merijn Brand Amsterdam Perl Mongers (http​://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.9.x on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.0 & 10.2, AIX 4.3 & 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/

@p5pRT
Copy link
Author

p5pRT commented Apr 30, 2008

p5p@spam.wizbit.be - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant