* ld-elfvsb/sh1.c (overriddenvar, shlib_overriddencall2,
shared_data): If !SHARED, move to... * ld-elfvsb/sh2.c: ... here. * ld-elfvsb/elfvsb.exp: Add -DSHARED to compiler options when building with $picflag.
This commit is contained in:
parent
e611e605d1
commit
125c64931b
@ -1,3 +1,12 @@
|
|||||||
|
2006-12-05 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* ld-elfvsb/sh1.c (overriddenvar, shlib_overriddencall2,
|
||||||
|
shared_data): If !SHARED, move to...
|
||||||
|
* ld-elfvsb/sh2.c: ... here.
|
||||||
|
* ld-elfvsb/elfvsb.exp: Add -DSHARED to compiler options when
|
||||||
|
building with $picflag.
|
||||||
|
|
||||||
2006-12-04 Jan Beulich <jbeulich@novell.com>
|
2006-12-04 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* ld-elf/eh-frame-hdr.d: New.
|
* ld-elf/eh-frame-hdr.d: New.
|
||||||
|
@ -315,8 +315,8 @@ proc visibility_run {visibility} {
|
|||||||
|
|
||||||
# Now compile the code using -fpic.
|
# Now compile the code using -fpic.
|
||||||
|
|
||||||
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
|
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
|
||||||
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
|
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
|
||||||
unresolved "visibility ($visibility)"
|
unresolved "visibility ($visibility)"
|
||||||
} else {
|
} else {
|
||||||
if { [ string match $visibility "protected" ]
|
if { [ string match $visibility "protected" ]
|
||||||
@ -337,7 +337,7 @@ proc visibility_run {visibility} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Now do the same tests again, but this time compile main.c PIC.
|
# Now do the same tests again, but this time compile main.c PIC.
|
||||||
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
|
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
|
||||||
unresolved "visibility ($visibility) (PIC main, non PIC so)"
|
unresolved "visibility ($visibility) (PIC main, non PIC so)"
|
||||||
unresolved "visibility ($visibility) (PIC main)"
|
unresolved "visibility ($visibility) (PIC main)"
|
||||||
} else {
|
} else {
|
||||||
@ -446,7 +446,7 @@ if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/common.c tmpdir/common.o] } {
|
|||||||
if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
|
if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
|
||||||
unresolved "weak hidden symbol"
|
unresolved "weak hidden symbol"
|
||||||
} else {
|
} else {
|
||||||
if { ![ld_compile "$CC -g $CFLAGS $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
|
if { ![ld_compile "$CC -g $CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
|
||||||
unresolved "weak hidden symbol"
|
unresolved "weak hidden symbol"
|
||||||
} else {
|
} else {
|
||||||
if ![ld_simple_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
|
if ![ld_simple_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
|
||||||
|
@ -13,7 +13,15 @@ extern int mainvar;
|
|||||||
/* This variable is defined in the shared library, and overridden by
|
/* This variable is defined in the shared library, and overridden by
|
||||||
the main program. */
|
the main program. */
|
||||||
#ifndef XCOFF_TEST
|
#ifndef XCOFF_TEST
|
||||||
|
#ifdef SHARED
|
||||||
|
/* SHARED is defined if we are compiling with -fpic/-fPIC. */
|
||||||
int overriddenvar = -1;
|
int overriddenvar = -1;
|
||||||
|
#else
|
||||||
|
/* Without -fpic, newer versions of gcc assume that we are not
|
||||||
|
compiling for a shared library, and thus that overriddenvar is
|
||||||
|
local. */
|
||||||
|
extern int overriddenvar;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This variable is defined in the shared library. */
|
/* This variable is defined in the shared library. */
|
||||||
@ -76,12 +84,14 @@ shlib_shlibcall2 ()
|
|||||||
return shlib_overriddencall2 ();
|
return shlib_overriddencall2 ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef SHARED
|
||||||
int
|
int
|
||||||
shlib_overriddencall2 ()
|
shlib_overriddencall2 ()
|
||||||
{
|
{
|
||||||
return 7;
|
return 7;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* This function calls a function defined by the main program. */
|
/* This function calls a function defined by the main program. */
|
||||||
|
|
||||||
@ -385,7 +395,11 @@ shlib_visibility_checkweak ()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef PROTECTED_TEST
|
#ifdef PROTECTED_TEST
|
||||||
|
#ifdef SHARED
|
||||||
int shared_data = 100;
|
int shared_data = 100;
|
||||||
|
#else
|
||||||
|
extern int shared_data;
|
||||||
|
#endif
|
||||||
|
|
||||||
int *
|
int *
|
||||||
shared_data_p ()
|
shared_data_p ()
|
||||||
|
@ -44,3 +44,18 @@ visibility_func_weak ()
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHARED
|
||||||
|
# ifndef XCOFF_TEST
|
||||||
|
int overriddenvar = -1;
|
||||||
|
|
||||||
|
int
|
||||||
|
shlib_overriddencall2 ()
|
||||||
|
{
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# ifdef PROTECTED_TEST
|
||||||
|
int shared_data = 100;
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user