[Bug gold/13850] New: init_array/fini_array sections are not in PT_GNU_RELRO as -z relro is given

2012-03-15 Thread petechou at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13850

 Bug #: 13850
   Summary: init_array/fini_array sections are not in PT_GNU_RELRO
as -z relro is given
   Product: binutils
   Version: 2.23 (HEAD)
Status: NEW
  Severity: normal
  Priority: P2
 Component: gold
AssignedTo: i...@airs.com
ReportedBy: petec...@gmail.com
CC: ccout...@google.com
Classification: Unclassified


Hi,



Recently I'm studying RELRO and find that compared to gnu ld, gold produces a
different result (e.g., .init_array section did not go into PT_GNU_RELRO as
linking with -z relro).



In the following diff, please find the condition,  type ==
elfcpp::SHT_PROGBITS, that causes the different behavior.



Looks like this condition is not necessary (or should be moved into an inner
if).



Any comment?



diff --git a/gold/layout.cc b/gold/layout.cc

index a4ef31a..13f7ea1 100644

--- a/gold/layout.cc

+++ b/gold/layout.cc

@@ -1368,29 +1368,28 @@ Layout::make_output_section(const char* name,
elfcpp::Elf_Word type,

  else if (is_prefix_of(.fini_array, name))

type = elfcpp::SHT_FINI_ARRAY;

}



   // FIXME: const_cast is ugly.

   Target* target = const_castTarget*(parameters-target());

   os = target-make_output_section(name, type, flags);

 }



   // With -z relro, we have to recognize the special sections by name.

   // There is no other way.

   bool is_relro_local = false;

   if (!this-script_options_-saw_sections_clause()

parameters-options().relro()

-   type == elfcpp::SHT_PROGBITS

(flags  elfcpp::SHF_ALLOC) != 0

(flags  elfcpp::SHF_WRITE) != 0)

 {

   if (strcmp(name, .data.rel.ro) == 0)

is_relro = true;

   else if (strcmp(name, .data.rel.ro.local) == 0)

{

  is_relro = true;

  is_relro_local = true;

}

   else if (type == elfcpp::SHT_INIT_ARRAY

   || type == elfcpp::SHT_FINI_ARRAY

   || type == elfcpp::SHT_PREINIT_ARRAY)

is_relro = true;



-

Thanks,

Pete

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gold/13850] init_array/fini_array sections are not in PT_GNU_RELRO as -z relro is given

2012-03-15 Thread cvs-commit at gcc dot gnu.org
http://sourceware.org/bugzilla/show_bug.cgi?id=13850

--- Comment #1 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot 
gnu.org 2012-03-15 16:32:31 UTC ---
CVSROOT:/cvs/src
Module name:src
Changes by:i...@sourceware.org2012-03-15 16:32:22

Modified files:
gold   : ChangeLog layout.cc 

Log message:
PR gold/13850
* layout.cc (Layout::make_output_section): Correctly mark
SHT_INIT_ARRAY, et. al., as relro.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=srcr1=1.884r2=1.885
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/layout.cc.diff?cvsroot=srcr1=1.222r2=1.223

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gold/13850] init_array/fini_array sections are not in PT_GNU_RELRO as -z relro is given

2012-03-15 Thread ian at airs dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13850

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #2 from Ian Lance Taylor ian at airs dot com 2012-03-15 16:33:43 
UTC ---
Thanks for letting us know.  Fixed.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/13855] New: internal error, aborting at elf64-x86-64.c line 3396 in elf_x86_64_relocate_section

2012-03-15 Thread brunobg at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13855

 Bug #: 13855
   Summary: internal error, aborting at elf64-x86-64.c line 3396
in elf_x86_64_relocate_section
   Product: binutils
   Version: 2.21
Status: NEW
  Severity: critical
  Priority: P2
 Component: ld
AssignedTo: unassig...@sourceware.org
ReportedBy: brun...@gmail.com
Classification: Unclassified


ld breaks on compiling berkelium (www.berkelium.org), with: 

internal error, aborting at elf64-x86-64.c line 3396 in
elf_x86_64_relocate_section

Here's the complete output:


Linking CXX shared library liblibberkelium_d.so
/usr/bin/cmake -E cmake_link_script CMakeFiles/libberkelium.dir/link.txt
--verbose=1
/usr/bin/c++  -fPIC  -Woverloaded-virtual -g  -Wl,--no-as-needed -g -shared
-fvisibility=hidden -fvisibility-inlines-hidden -fPIC -pthread -fno-rtti 
-shared -Wl,-soname,liblibberkelium_d.so -o liblibberkelium_d.so
CMakeFiles/libberkelium.dir/src/Berkelium.o
CMakeFiles/libberkelium.dir/src/Context.o
CMakeFiles/libberkelium.dir/src/Cursor.o
CMakeFiles/libberkelium.dir/src/ContextImpl.o
CMakeFiles/libberkelium.dir/src/ForkedProcessHook.o
CMakeFiles/libberkelium.dir/src/NavigationController.o
CMakeFiles/libberkelium.dir/src/RenderWidget.o
CMakeFiles/libberkelium.dir/src/MemoryRenderViewHost.o
CMakeFiles/libberkelium.dir/src/Root.o
CMakeFiles/libberkelium.dir/src/ScriptUtilImpl.o
CMakeFiles/libberkelium.dir/src/ScriptVariant.o
CMakeFiles/libberkelium.dir/src/StringUtil.o
CMakeFiles/libberkelium.dir/src/Window.o
CMakeFiles/libberkelium.dir/src/WindowImpl.o
CMakeFiles/libberkelium.dir/src/DevToolsHttpProtocolHandler.o
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/app
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/base
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/base/allocator
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/ipc
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/jingle
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/chrome
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/chrome/default_plugin
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/net
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/media
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/webkit
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/sandbox
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/skia
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/remoting
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/remoting/proto
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/printing
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/v8/tools/gyp
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/v8/src/extensions/experimental
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/gpu
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/ui/gfx
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/gfx
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/sdch
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/build/temp_gyp
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/seccompsandbox
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/undoview
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/ppapi
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/ffmpeg
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/openmax
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/harfbuzz
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/libjingle
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/hunspell
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/icu
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/libevent
-L/home/corollarium/htdocs/gitberkelium/build/chromium/src/out/Release/obj.target/third_party/libxml

[Bug ld/13855] internal error, aborting at elf64-x86-64.c line 3396 in elf_x86_64_relocate_section

2012-03-15 Thread brunobg at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13855

brunobg at gmail dot com changed:

   What|Removed |Added

 CC||brunobg at gmail dot com

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gold/13857] New: WARNING: Absolute relocations present compiling Linux kernel using -Wl,--icf=safe

2012-03-15 Thread doctorwhoguy at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13857

 Bug #: 13857
   Summary: WARNING: Absolute relocations present compiling
Linux kernel using -Wl,--icf=safe
   Product: binutils
   Version: 2.22
Status: NEW
  Severity: normal
  Priority: P2
 Component: gold
AssignedTo: i...@airs.com
ReportedBy: doctorwho...@gmail.com
CC: ccout...@google.com
Classification: Unclassified


I compiled Linux kernel 3.2.9 with Gentoo and CK patches and used the Gold
linker 1.11 from binutils 2.22. I added additional linker flags to the Makefile
including -Wl,--icf=safe. After compiling, I saw the error message:

WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c1029fa2 00950401   R_386_32 c15fe000  __init_end
c1029fa7 00950501   R_386_32 c159  __init_begin
c102a16b 00950401   R_386_32 c15fe000  __init_end
c1595bcd 00916701   R_386_32 c15fe000  __smp_locks_end
c1595bd2 00916801   R_386_32 c15fe000  __smp_locks
c15a098a 00950401   R_386_32 c15fe000  __init_end
c15a0990 00950501   R_386_32 c159  __init_begin
c15a0a5f 00950401   R_386_32 c15fe000  __init_end
c15a0a67 00950501   R_386_32 c159  __init_begin
c142fd48 009d0001   R_386_32 c15314b0  __start___ksymtab_gpl_future
c142fd4c 009d0101   R_386_32 c15314b0  __stop___ksymtab_gpl_future
c142fd50 009d0201   R_386_32 c1536640  __start___kcrctab_gpl_future

I removed -Wl,--icf=safe and recompiled and did not receive the error again.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils