ppc problem with .rodata.str1.4. binutils requirement for gcc 3.3.1?

David Edelsohn dje@watson.ibm.com
Sat Nov 29 02:33:00 GMT 2003


>>>>> Alan Modra writes:

Alan> This is very likely a bug in gcc.  I reckon that if you look at your
Alan> object file with readelf or objdump, you'll find that this .rodata
Alan> section is marked read/write.

Alan> The fix is easy.

Alan> --- gcc-ppc64-33.orig/gcc/config/rs6000/rs6000.c	2003-09-27 10:07:41.000000000 +0930
Alan> +++ gcc-ppc64-33/gcc/config/rs6000/rs6000.c	2003-11-29 12:04:22.000000000 +1030
Alan> @@ -13138,14 +13659,8 @@ rs6000_elf_section_type_flags (decl, nam
Alan> const char *name;
Alan> int reloc;
Alan> {
Alan> -  unsigned int flags
Alan> -    = default_section_type_flags_1 (decl, name, reloc,
Alan> -				    flag_pic || DEFAULT_ABI == ABI_AIX);
Alan> -
Alan> -  if (TARGET_RELOCATABLE)
Alan> -    flags |= SECTION_WRITE;
Alan> -
Alan> -  return flags;
Alan> +  return default_section_type_flags_1 (decl, name, reloc,
Alan> +				       flag_pic || DEFAULT_ABI == ABI_AIX);
Alan> }
 
Alan> /* Record an element in the table of global constructors.  SYMBOL is

	I am not sure that we can make this change unilaterally.  The
addition of the SECTION_WRITE flag may be necessary for embedded targets.
We need to understand the reason for the feature before removing it.

David



More information about the Binutils mailing list