public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [patch] SymbianOS Arm executables
@ 2005-02-09 23:38 Paul Brook
  2005-02-10 15:58 ` Richard Earnshaw
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Brook @ 2005-02-09 23:38 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 1576 bytes --]

arm-*-symbianelf executables are relocatable. This has a few implications:

- We need to write out absolute relocations, like we do with shared libraries.
- These need to be against a symbols because the RO and RW segments are 
relocated independently. In most cases we use the section symbol.
- Imported data is addressed directly (with absolute relocations).

Most of the changes are arm-specific, however I did need to add a new 
common-code flag to allow creation of the local dynamic symbols.

Tested on i686-linux, arm-none-eabi and arm-none-symbianelf.
Ok?

Paul

This depends on a previous patch for correct symbol ordering:
http://sourceware.org/ml/binutils/2005-02/msg00169.html

2005-02-09  Paul Brook  <paul@codesourcery.com>

 * elf-bfd.h (struct elf_link_hash_table): Add keep_local_dynsyms.
 * elf.c (_bfd_elf_link_hash_table_init): Initialize it.
 * elflink.c (bfd_elf_link_record_dynamic_symbol): Allow creation of
 local dynamic symbols.
 (bfd_elf_record_link_assignment): Allow creation of dynamic section
 symbols in ecxecutables.
 (_bfd_elf_link_renumber_dynsyms): Ditto.
 (bfd_elf_final_link): Ditto.
 * elf32-arm.c (elf32_arm_final_link_relocate): Copy absolute
 relocations into SymbianOS executables.
 (elf32_arm_check_relocs): Crate dynamic sections for SymbianOS
 executables.  Copy absolute relocations into SymbianOS executables.
 (elf32_arm_adjust_dynamic_symbol): Don't create copy relocations
 in symbian objects.
 (allocate_dynrelocs): Copy relocations for SymbianOS executables.
 Output dynamic symbols for symbols defined in linker scripts.

[-- Attachment #2: patch.symbian_exec --]
[-- Type: text/x-diff, Size: 6314 bytes --]

Index: bfd/elf-bfd.h
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf-bfd.h,v
retrieving revision 1.170
diff -u -p -r1.170 elf-bfd.h
--- bfd/elf-bfd.h	31 Jan 2005 22:53:24 -0000	1.170
+++ bfd/elf-bfd.h	9 Feb 2005 02:20:12 -0000
@@ -398,6 +398,10 @@ struct elf_link_hash_table
 
   /* A linked list of BFD's loaded in the link.  */
   struct elf_link_loaded_list *loaded;
+
+  /* True if local symbols should be included in dynamic symbol tables
+     of executable objects.  */
+  bfd_boolean keep_local_dynsyms;
 };
 
 /* Look up an entry in an ELF linker hash table.  */
Index: bfd/elf.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf.c,v
retrieving revision 1.263
diff -u -p -r1.263 elf.c
--- bfd/elf.c	31 Jan 2005 23:13:18 -0000	1.263
+++ bfd/elf.c	9 Feb 2005 02:03:46 -0000
@@ -1493,6 +1493,7 @@ _bfd_elf_link_hash_table_init
   table->tls_sec = NULL;
   table->tls_size = 0;
   table->loaded = NULL;
+  table->keep_local_dynsyms = FALSE;
 
   ret = _bfd_link_hash_table_init (&table->root, abfd, newfunc);
   table->root.type = bfd_link_elf_hash_table;
Index: bfd/elf32-arm.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf32-arm.c,v
retrieving revision 1.20
diff -u -p -r1.20 elf32-arm.c
--- bfd/elf32-arm.c	31 Jan 2005 17:50:20 -0000	1.20
+++ bfd/elf32-arm.c	9 Feb 2005 02:23:36 -0000
@@ -2352,7 +2352,7 @@ elf32_arm_final_link_relocate (reloc_how
 
       /* When generating a shared object, these relocations are copied
 	 into the output file to be resolved at run time.  */
-      if (info->shared
+      if ((info->shared || globals->symbian_p)
 	  && (input_section->flags & SEC_ALLOC)
 	  && (r_type != R_ARM_REL32
 	      || !SYMBOL_CALLS_LOCAL (info, h))
@@ -3985,6 +3985,14 @@ elf32_arm_check_relocs (bfd *abfd, struc
   htab = elf32_arm_hash_table (info);
   sreloc = NULL;
 
+  /* Create dynamic sections for SymbianOS executables so that we can
+     copy relocations.  */
+  if (htab->symbian_p && ! htab->root.dynamic_sections_created)
+    {
+      if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
+	return FALSE;
+    }
+
   dynobj = elf_hash_table (info)->dynobj;
   local_got_offsets = elf_local_got_offsets (abfd);
 
@@ -4117,7 +4125,7 @@ elf32_arm_check_relocs (bfd *abfd, struc
                later (it is never cleared).  We account for that
                possibility below by storing information in the
                relocs_copied field of the hash table entry.  */
-	    if (info->shared
+	    if ((info->shared || htab->symbian_p)
 		&& (sec->flags & SEC_ALLOC) != 0
 		&& ((r_type != R_ARM_PC24
 		     && r_type != R_ARM_PLT32
@@ -4377,7 +4385,9 @@ elf32_arm_adjust_dynamic_symbol (struct 
   asection * s;
   unsigned int power_of_two;
   struct elf32_arm_link_hash_entry * eh;
+  struct elf32_arm_link_hash_table *globals;
 
+  globals = elf32_arm_hash_table (info);
   dynobj = elf_hash_table (info)->dynobj;
 
   /* Make sure we know what is going on here.  */
@@ -4442,8 +4452,10 @@ elf32_arm_adjust_dynamic_symbol (struct 
   /* If we are creating a shared library, we must presume that the
      only references to the symbol are via the global offset table.
      For such cases we need not do anything here; the relocations will
-     be handled correctly by relocate_section.  */
-  if (info->shared)
+     be handled correctly by relocate_section.  On SymbianOS executables
+     can reference data in shared objects directly, so we don't need to
+     do anything here.  */
+  if (info->shared || globals->symbian_p)
     return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -4636,13 +4648,23 @@ allocate_dynrelocs (struct elf_link_hash
      space for pc-relative relocs that have become local due to symbol
      visibility changes.  */
 
-  if (info->shared)
+  if (info->shared || htab->symbian_p)
     {
       /* Discard relocs on undefined weak syms with non-default
          visibility.  */
       if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
 	  && h->root.type == bfd_link_hash_undefweak)
 	eh->relocs_copied = NULL;
+      else if (htab->symbian_p && h->dynindx == -1
+	       && h->root.type == bfd_link_hash_new)
+	{
+	  /* Output absolute symbols so that we can create relocations
+	     against them.  For normal symbols we output a relocation
+	     against the section that contains them.  */
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
+
     }
   else
     {
@@ -5845,6 +5867,7 @@ elf32_arm_symbian_link_hash_table_create
       /* The PLT entries are each three instructions.  */
       htab->plt_entry_size = 4 * NUM_ELEM (elf32_arm_symbian_plt_entry);
       htab->symbian_p = 1;
+      htab->root.keep_local_dynsyms = 1;
     }
   return ret;
 }     
Index: bfd/elflink.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elflink.c,v
retrieving revision 1.126
diff -u -p -r1.126 elflink.c
--- bfd/elflink.c	1 Feb 2005 01:11:14 -0000	1.126
+++ bfd/elflink.c	9 Feb 2005 02:07:31 -0000
@@ -386,7 +386,8 @@ bfd_elf_link_record_dynamic_symbol (stru
 	      && h->root.type != bfd_link_hash_undefweak)
 	    {
 	      h->forced_local = 1;
-	      return TRUE;
+	      if (!elf_hash_table (info)->keep_local_dynsyms)
+		return TRUE;
 	    }
 
 	default:
@@ -484,6 +485,6 @@ bfd_elf_record_link_assignment (bfd *out
   if ((h->def_dynamic
        || h->ref_dynamic
-       || info->shared)
+       || info->shared || elf_hash_table (info)->keep_local_dynsyms)
       && h->dynindx == -1)
     {
       if (! bfd_elf_link_record_dynamic_symbol (info, h))
@@ -667,7 +701,7 @@ _bfd_elf_link_renumber_dynsyms
 {
   unsigned long dynsymcount = 0;
 
-  if (info->shared)
+  if (info->shared || elf_hash_table (info)->keep_local_dynsyms)
     {
       const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
       asection *p;
@@ -8104,7 +8143,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
       long last_local = 0;
 
       /* Write out the section symbols for the output sections.  */
-      if (info->shared)
+      if (info->shared || elf_hash_table (info)->keep_local_dynsyms)
 	{
 	  asection *s;
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] SymbianOS Arm executables
  2005-02-09 23:38 [patch] SymbianOS Arm executables Paul Brook
@ 2005-02-10 15:58 ` Richard Earnshaw
  2005-02-10 17:29   ` Paul Brook
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Earnshaw @ 2005-02-10 15:58 UTC (permalink / raw)
  To: Paul Brook; +Cc: binutils

On Wed, 2005-02-09 at 20:35, Paul Brook wrote:
> arm-*-symbianelf executables are relocatable. This has a few implications:
> 
> - We need to write out absolute relocations, like we do with shared libraries.
> - These need to be against a symbols because the RO and RW segments are 
> relocated independently. In most cases we use the section symbol.
> - Imported data is addressed directly (with absolute relocations).
> 
> Most of the changes are arm-specific, however I did need to add a new 
> common-code flag to allow creation of the local dynamic symbols.
> 
> Tested on i686-linux, arm-none-eabi and arm-none-symbianelf.
> Ok?
> 
> Paul
> 
> This depends on a previous patch for correct symbol ordering:
> http://sourceware.org/ml/binutils/2005-02/msg00169.html

I'm uncomfortable about the way globals->symbian_p is getting scattered
throughout the entire linking process.  I think we really need to try
and distill that variable into the effects it has on linking (this would
then make porting the linker to platforms with similar properties much
less painful).

In this case you've already identified the abstract property: the
executable is relocated at link time.  Most of your used of ->symbian_p
should therefore be ->exec_reloc_p.  There should then be exactly one
place where symbian_p is tested, and that is then used to set the
exec_reloc_p property.

R.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] SymbianOS Arm executables
  2005-02-10 15:58 ` Richard Earnshaw
@ 2005-02-10 17:29   ` Paul Brook
  2005-02-10 19:54     ` Richard Earnshaw
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Brook @ 2005-02-10 17:29 UTC (permalink / raw)
  To: binutils; +Cc: Richard Earnshaw

[-- Attachment #1: Type: text/plain, Size: 1690 bytes --]

On Thursday 10 February 2005 10:55, Richard Earnshaw wrote:
> I'm uncomfortable about the way globals->symbian_p is getting scattered
> throughout the entire linking process.  I think we really need to try
> and distill that variable into the effects it has on linking (this would
> then make porting the linker to platforms with similar properties much
> less painful).
>
> In this case you've already identified the abstract property: the
> executable is relocated at link time.  Most of your used of ->symbian_p
> should therefore be ->exec_reloc_p.  There should then be exactly one
> place where symbian_p is tested, and that is then used to set the
> exec_reloc_p property.

Modified patch attached. No functional changes.

Retested on i686-linux, arm-none-elf and arm-none-symbianelf.
Ok?

Paul

2005-02-10  Paul Brook  <paul@codesourcery.com>

 * elf-bfd.h (struct elf_link_hash_table): Add exec_reloc_p.
 * elf.c (_bfd_elf_link_hash_table_init): Initialize it.
 * elflink.c (bfd_elf_link_record_dynamic_symbol): Create local dynamic
 symbols in relocatable executables.
 (bfd_elf_record_link_assignment): Create dynamic section symbols in
 relocatable executables.
 (_bfd_elf_link_renumber_dynsyms): Ditto.
 (bfd_elf_final_link): Ditto.
 * elf32-arm.c (elf32_arm_final_link_relocate): Copy absolute
 relocations into relocatable executables.
 (elf32_arm_check_relocs): Crate dynamic sections for relocatale
 executables.  Also copy absolute relocations.
 (elf32_arm_adjust_dynamic_symbol): Don't create copy relocations
 in relocatable executables.
 (allocate_dynrelocs): Copy relocations for relocatable executables.
 Output dynamic symbols for symbols defined in linker scripts.

[-- Attachment #2: patch.symbian_exec --]
[-- Type: text/x-diff, Size: 7376 bytes --]

Index: bfd/elf-bfd.h
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf-bfd.h,v
retrieving revision 1.171
diff -u -p -r1.171 elf-bfd.h
--- bfd/elf-bfd.h	6 Feb 2005 23:21:44 -0000	1.171
+++ bfd/elf-bfd.h	10 Feb 2005 14:57:52 -0000
@@ -398,6 +398,10 @@ struct elf_link_hash_table
 
   /* A linked list of BFD's loaded in the link.  */
   struct elf_link_loaded_list *loaded;
+
+  /* True if This target has relocatable executables, so needs dynamic
+     section symbols.  */
+  bfd_boolean exec_reloc_p;
 };
 
 /* Look up an entry in an ELF linker hash table.  */
Index: bfd/elf.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf.c,v
retrieving revision 1.264
diff -u -p -r1.264 elf.c
--- bfd/elf.c	6 Feb 2005 23:21:44 -0000	1.264
+++ bfd/elf.c	10 Feb 2005 15:11:21 -0000
@@ -1496,6 +1496,7 @@ _bfd_elf_link_hash_table_init
   table->tls_sec = NULL;
   table->tls_size = 0;
   table->loaded = NULL;
+  table->exec_reloc_p = FALSE;
 
   ret = _bfd_link_hash_table_init (&table->root, abfd, newfunc);
   table->root.type = bfd_link_elf_hash_table;
Index: bfd/elf32-arm.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elf32-arm.c,v
retrieving revision 1.21
diff -u -p -r1.21 elf32-arm.c
--- bfd/elf32-arm.c	10 Feb 2005 14:14:25 -0000	1.21
+++ bfd/elf32-arm.c	10 Feb 2005 14:56:05 -0000
@@ -2352,7 +2352,7 @@ elf32_arm_final_link_relocate (reloc_how
 
       /* When generating a shared object, these relocations are copied
 	 into the output file to be resolved at run time.  */
-      if (info->shared
+      if ((info->shared || globals->root.exec_reloc_p)
 	  && (input_section->flags & SEC_ALLOC)
 	  && (r_type != R_ARM_REL32
 	      || !SYMBOL_CALLS_LOCAL (info, h))
@@ -3986,6 +3986,14 @@ elf32_arm_check_relocs (bfd *abfd, struc
   htab = elf32_arm_hash_table (info);
   sreloc = NULL;
 
+  /* Create dynamic sections for relocatable executables so that we can
+     copy relocations.  */
+  if (htab->root.exec_reloc_p && ! htab->root.dynamic_sections_created)
+    {
+      if (! _bfd_elf_link_create_dynamic_sections (abfd, info))
+	return FALSE;
+    }
+
   dynobj = elf_hash_table (info)->dynobj;
   local_got_offsets = elf_local_got_offsets (abfd);
 
@@ -4106,11 +4114,11 @@ elf32_arm_check_relocs (bfd *abfd, struc
 		  eh->plt_thumb_refcount += 1;
 	      }
 
-	    /* If we are creating a shared library, and this is a reloc
-               against a global symbol, or a non PC relative reloc
-               against a local symbol, then we need to copy the reloc
-               into the shared library.  However, if we are linking with
-               -Bsymbolic, we do not need to copy a reloc against a
+	    /* If we are creating a shared library or relocatable executable,
+	       and this is a reloc against a global symbol, or a non PC
+	       relative reloc against a local symbol, then we need to copy
+	       the reloc into the shared library.  However, if we are linking
+	       with -Bsymbolic, we do not need to copy a reloc against a
                global symbol which is defined in an object we are
                including in the link (i.e., DEF_REGULAR is set).  At
                this point we have not seen all the input files, so it is
@@ -4118,7 +4126,7 @@ elf32_arm_check_relocs (bfd *abfd, struc
                later (it is never cleared).  We account for that
                possibility below by storing information in the
                relocs_copied field of the hash table entry.  */
-	    if (info->shared
+	    if ((info->shared || htab->root.exec_reloc_p)
 		&& (sec->flags & SEC_ALLOC) != 0
 		&& ((r_type != R_ARM_PC24
 		     && r_type != R_ARM_PLT32
@@ -4378,7 +4386,9 @@ elf32_arm_adjust_dynamic_symbol (struct 
   asection * s;
   unsigned int power_of_two;
   struct elf32_arm_link_hash_entry * eh;
+  struct elf32_arm_link_hash_table *globals;
 
+  globals = elf32_arm_hash_table (info);
   dynobj = elf_hash_table (info)->dynobj;
 
   /* Make sure we know what is going on here.  */
@@ -4443,8 +4453,10 @@ elf32_arm_adjust_dynamic_symbol (struct 
   /* If we are creating a shared library, we must presume that the
      only references to the symbol are via the global offset table.
      For such cases we need not do anything here; the relocations will
-     be handled correctly by relocate_section.  */
-  if (info->shared)
+     be handled correctly by relocate_section.  Relocatable executables
+     can reference data in shared objects directly, so we don't need to
+     do anything here.  */
+  if (info->shared || globals->root.exec_reloc_p)
     return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -4637,13 +4649,23 @@ allocate_dynrelocs (struct elf_link_hash
      space for pc-relative relocs that have become local due to symbol
      visibility changes.  */
 
-  if (info->shared)
+  if (info->shared || htab->root.exec_reloc_p)
     {
       /* Discard relocs on undefined weak syms with non-default
          visibility.  */
       if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
 	  && h->root.type == bfd_link_hash_undefweak)
 	eh->relocs_copied = NULL;
+      else if (htab->root.exec_reloc_p && h->dynindx == -1
+	       && h->root.type == bfd_link_hash_new)
+	{
+	  /* Output absolute symbols so that we can create relocations
+	     against them.  For normal symbols we output a relocation
+	     against the section that contains them.  */
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
+
     }
   else
     {
@@ -5846,6 +5868,7 @@ elf32_arm_symbian_link_hash_table_create
       /* The PLT entries are each three instructions.  */
       htab->plt_entry_size = 4 * NUM_ELEM (elf32_arm_symbian_plt_entry);
       htab->symbian_p = 1;
+      htab->root.exec_reloc_p = 1;
     }
   return ret;
 }     
Index: bfd/elflink.c
===================================================================
RCS file: /var/cvsroot/src-cvs/src/bfd/elflink.c,v
retrieving revision 1.133
diff -u -p -r1.133 elflink.c
--- bfd/elflink.c	10 Feb 2005 14:09:40 -0000	1.133
+++ bfd/elflink.c	10 Feb 2005 15:10:45 -0000
@@ -386,7 +386,8 @@ bfd_elf_link_record_dynamic_symbol (stru
 	      && h->root.type != bfd_link_hash_undefweak)
 	    {
 	      h->forced_local = 1;
-	      return TRUE;
+	      if (!elf_hash_table (info)->exec_reloc_p)
+		return TRUE;
 	    }
 
 	default:
@@ -494,7 +495,8 @@ bfd_elf_record_link_assignment (bfd *out
 
   if ((h->def_dynamic
        || h->ref_dynamic
-       || info->shared)
+       || info->shared
+       || (info->executable && elf_hash_table (info)->exec_reloc_p))
       && h->dynindx == -1)
     {
       if (! bfd_elf_link_record_dynamic_symbol (info, h))
@@ -710,7 +712,7 @@ _bfd_elf_link_renumber_dynsyms (bfd *out
 {
   unsigned long dynsymcount = 0;
 
-  if (info->shared)
+  if (info->shared || elf_hash_table (info)->exec_reloc_p)
     {
       const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
       asection *p;
@@ -8167,7 +8169,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
       long last_local = 0;
 
       /* Write out the section symbols for the output sections.  */
-      if (info->shared)
+      if (info->shared || elf_hash_table (info)->exec_reloc_p)
 	{
 	  asection *s;
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] SymbianOS Arm executables
  2005-02-10 17:29   ` Paul Brook
@ 2005-02-10 19:54     ` Richard Earnshaw
  0 siblings, 0 replies; 5+ messages in thread
From: Richard Earnshaw @ 2005-02-10 19:54 UTC (permalink / raw)
  To: Paul Brook; +Cc: binutils

On Thu, 2005-02-10 at 15:45, Paul Brook wrote:
> On Thursday 10 February 2005 10:55, Richard Earnshaw wrote:
> > I'm uncomfortable about the way globals->symbian_p is getting scattered
> > throughout the entire linking process.  I think we really need to try
> > and distill that variable into the effects it has on linking (this would
> > then make porting the linker to platforms with similar properties much
> > less painful).
> >
> > In this case you've already identified the abstract property: the
> > executable is relocated at link time.  Most of your used of ->symbian_p
> > should therefore be ->exec_reloc_p.  There should then be exactly one
> > place where symbian_p is tested, and that is then used to set the
> > exec_reloc_p property.
> 
> Modified patch attached. No functional changes.
> 
That looks much better.

> Retested on i686-linux, arm-none-elf and arm-none-symbianelf.
> Ok?

The ARM parts are OK, but I can't approve the other bits.

R.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [patch] SymbianOS Arm executables
@ 2005-02-11 15:15 Nick Clifton
  0 siblings, 0 replies; 5+ messages in thread
From: Nick Clifton @ 2005-02-11 15:15 UTC (permalink / raw)
  To: paul; +Cc: binutils

Hi Paul,

> 2005-02-10  Paul Brook  <paul@codesourcery.com>
> 
>  * elf-bfd.h (struct elf_link_hash_table): Add exec_reloc_p.
>  * elf.c (_bfd_elf_link_hash_table_init): Initialize it.
>  * elflink.c (bfd_elf_link_record_dynamic_symbol): Create local dynamic
>  symbols in relocatable executables.
>  (bfd_elf_record_link_assignment): Create dynamic section symbols in
>  relocatable executables.
>  (_bfd_elf_link_renumber_dynsyms): Ditto.
>  (bfd_elf_final_link): Ditto.
>  * elf32-arm.c (elf32_arm_final_link_relocate): Copy absolute
>  relocations into relocatable executables.
>  (elf32_arm_check_relocs): Crate dynamic sections for relocatale

                                                         ^^^^^^^^^
                                                         relocatable ?

>  executables.  Also copy absolute relocations.
>  (elf32_arm_adjust_dynamic_symbol): Don't create copy relocations
>  in relocatable executables.
>  (allocate_dynrelocs): Copy relocations for relocatable executables.
>  Output dynamic symbols for symbols defined in linker scripts.

Approved - please apply.  But...

------------------------------------------------------------------------
+  /* True if This target has relocatable executables, so needs dynamic
+     section symbols.  */
+  bfd_boolean exec_reloc_p;

There is no need for a capital T on the word "This".

Also - this is a just personal thing, not a requirement - I really
hate the use of ..._p to indicate a boolean value.  We are coding in C
here not lisp and I think that we should try to drop hold overs from
that language.  Thus I would have called this variable:
"is_relocatable_executable" or
"executable_needs_dynamic_section_syms".

------------------------------------------------------------------------
       /* When generating a shared object, these relocations are copied
 	 into the output file to be resolved at run time.  */
-      if (info->shared
+      if ((info->shared || globals->root.exec_reloc_p)

Since you are updating the if() statement, you should update the
comment describing it.


Cheers
  Nick

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-02-11  9:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-09 23:38 [patch] SymbianOS Arm executables Paul Brook
2005-02-10 15:58 ` Richard Earnshaw
2005-02-10 17:29   ` Paul Brook
2005-02-10 19:54     ` Richard Earnshaw
2005-02-11 15:15 Nick Clifton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).