bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/14570] New: Gold is broken for x32


From: hjl.tools at gmail dot com
Subject: [Bug gold/14570] New: Gold is broken for x32
Date: Wed, 12 Sep 2012 17:10:35 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=14570

             Bug #: 14570
           Summary: Gold is broken for x32
           Product: binutils
           Version: 2.24 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
        AssignedTo: address@hidden
        ReportedBy: address@hidden
                CC: address@hidden
    Classification: Unclassified


This commit:

http://sourceware.org/git/?p=binutils.git;a=commit;h=f1a44d332b9e891b517c6397f76d06dfd47abbdd

has

@@ -1409,19 +1414,24 @@ Output_data_got<size,
big_endian>::Got_entry::write(unsigned char* pov) const

     default:
       {
-       const Relobj* object = this->u_.object;
+       const Sized_relobj_file<size, big_endian>* object
+         = static_cast<Sized_relobj_file<size, big_endian>*>(this->u_.object);
         const unsigned int lsi = this->local_sym_index_;

But Output_data_got is declared as:

template<int got_size, bool big_endian>
class Output_data_got : public Output_data_got_base
{
 public:
  typedef typename elfcpp::Elf_types<got_size>::Elf_Addr Valtype;

The template size parameter is for GOT size, which
is independent of the template size parameter for

// A regular object file.  This is size and endian specific.

template<int size, bool big_endian>
class Sized_relobj_file : public Sized_relobj<size, big_endian>
{

It is wrong to use GOT size a template parameter for Sized_relobj_file.

-- 
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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]