From: Kaveh R. Ghazi Date: Sat, 2 Feb 2008 01:42:03 +0000 (+0000) Subject: Backport: X-Git-Tag: prereleases/gcc-4.2.4-rc1~173 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d786f0d1d8c646e89e0c74abc4d046084eb9a1d9;p=thirdparty%2Fgcc.git Backport: 2007-08-02 Nathan Froyd PR middle-end/25445 * varasm.c (default_binds_local_p_1): Consult flag_whole_program if we are compiling with -fPIC. From-SVN: r132060 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62a4c66cdb6e..8a8046938df3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2008-02-01 Kaveh R. Ghazi + + Backport: + 2007-08-02 Nathan Froyd + + PR middle-end/25445 + * varasm.c (default_binds_local_p_1): Consult flag_whole_program + if we are compiling with -fPIC. + 2008-02-01 Joseph Myers * BASE-VER: Bump. diff --git a/gcc/varasm.c b/gcc/varasm.c index 2163d6d638a0..62609236fe85 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -5872,9 +5872,10 @@ default_binds_local_p_1 (tree exp, int shlib) else if (DECL_WEAK (exp)) local_p = false; /* If PIC, then assume that any global name can be overridden by - symbols resolved from other modules. */ + symbols resolved from other modules, unless we are compiling with + -fwhole-program, which assumes that names are local. */ else if (shlib) - local_p = false; + local_p = flag_whole_program; /* Uninitialized COMMON variable may be unified with symbols resolved from other modules. */ else if (DECL_COMMON (exp)