Hardcode host-specific name for LTO plugin
[platform/upstream/binutils.git] / ld / scripttempl / nw.sc
index 38174ab..234a3cd 100644 (file)
@@ -1,3 +1,8 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# 
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.
 #
 # Unusual variables checked by this code:
 #      NOP - four byte opcode for no-op (defaults to 0)
 # When adding sections, do note that the names of some sections are used
 # when specifying the start address of the next.
 #
+
 test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
 test "$LD_FLAG" = "N" && DATA_ADDR=.
-INTERP=".interp    : { *(.interp)      }"
-PLT=".plt     : { *(.plt)      }"
+INTERP=".interp   ${RELOCATING-0} : { *(.interp)       }"
+PLT=".plt    ${RELOCATING-0} : { *(.plt)       }"
+
 cat <<EOF
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+
+   Copying and distribution of this script, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.  */
+
 OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
              "${LITTLE_OUTPUT_FORMAT}")
 OUTPUT_ARCH(${ARCH})
@@ -34,35 +47,38 @@ ${RELOCATING+${LIB_SEARCH_DIRS}}
 ${RELOCATING+/* Do we need any of these for elf?
    __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}}  */}
 ${RELOCATING+${EXECUTABLE_SYMBOLS}}
-
+${RELOCATING- /* For some reason, the Solaris linker makes bad executables
+  if gld -r is used and the intermediate file has sections starting
+  at non-zero addresses.  Could be a Solaris ld bug, could be a GNU ld
+  bug.  But for now assigning the zero vmas works.  */}
 SECTIONS
 {
   /* Read-only sections, merged into text segment: */
   ${CREATE_SHLIB-${RELOCATING+. = ${TEXT_START_ADDR} + SIZEOF_HEADERS;}}
   ${CREATE_SHLIB+${RELOCATING+. = SIZEOF_HEADERS;}}
   ${CREATE_SHLIB-${INTERP}}
-  .hash         : { *(.hash)           }
-  .dynsym       : { *(.dynsym)         }
-  .dynstr       : { *(.dynstr)         }
-  .rel.text     : { *(.rel.text)               }
-  .rela.text    : { *(.rela.text)      }
-  .rel.data     : { *(.rel.data)               }
-  .rela.data    : { *(.rela.data)      }
-  .rel.rodata   : { *(.rel.rodata)     }
-  .rela.rodata  : { *(.rela.rodata)    }
-  .rel.got      : { *(.rel.got)                }
-  .rela.got     : { *(.rela.got)               }
-  .rel.ctors    : { *(.rel.ctors)      }
-  .rela.ctors   : { *(.rela.ctors)     }
-  .rel.dtors    : { *(.rel.dtors)      }
-  .rela.dtors   : { *(.rela.dtors)     }
-  .rel.bss      : { *(.rel.bss)                }
-  .rela.bss     : { *(.rela.bss)               }
-  .rel.plt      : { *(.rel.plt)                }
-  .rela.plt     : { *(.rela.plt)               }
-  .init         : { *(.init)   } =${NOP-0}
+  .hash        ${RELOCATING-0} : { *(.hash)            }
+  .dynsym      ${RELOCATING-0} : { *(.dynsym)          }
+  .dynstr      ${RELOCATING-0} : { *(.dynstr)          }
+  .rel.text    ${RELOCATING-0} : { *(.rel.text)                }
+  .rela.text   ${RELOCATING-0} : { *(.rela.text)       }
+  .rel.data    ${RELOCATING-0} : { *(.rel.data)                }
+  .rela.data   ${RELOCATING-0} : { *(.rela.data)       }
+  .rel.rodata  ${RELOCATING-0} : { *(.rel.rodata)      }
+  .rela.rodata ${RELOCATING-0} : { *(.rela.rodata)     }
+  .rel.got     ${RELOCATING-0} : { *(.rel.got)         }
+  .rela.got    ${RELOCATING-0} : { *(.rela.got)                }
+  .rel.ctors   ${RELOCATING-0} : { *(.rel.ctors)       }
+  .rela.ctors  ${RELOCATING-0} : { *(.rela.ctors)      }
+  .rel.dtors   ${RELOCATING-0} : { *(.rel.dtors)       }
+  .rela.dtors  ${RELOCATING-0} : { *(.rela.dtors)      }
+  .rel.bss     ${RELOCATING-0} : { *(.rel.bss)         }
+  .rela.bss    ${RELOCATING-0} : { *(.rela.bss)                }
+  .rel.plt     ${RELOCATING-0} : { *(.rel.plt)         }
+  .rela.plt    ${RELOCATING-0} : { *(.rela.plt)                }
+  .init        ${RELOCATING-0} : { *(.init)    } =${NOP-0}
   ${DATA_PLT-${PLT}}
-  .text     :
+  .text    ${RELOCATING-0} :
   {
     ${RELOCATING+${TEXT_START_SYMBOLS}}
     *(.text)
@@ -79,36 +95,36 @@ SECTIONS
   }
   ${RELOCATING+_etext = .;}
   ${RELOCATING+PROVIDE (etext = .);}
-  .fini     : { *(.fini)    } =${NOP-0}
-  .ctors    : { *(.ctors)   }
-  .dtors    : { *(.dtors)   }
-  .rodata   : { *(.rodata)  }
-  .rodata1  : { *(.rodata1) }
+  .fini    ${RELOCATING-0} : { *(.fini)    } =${NOP-0}
+  .ctors   ${RELOCATING-0} : { *(.ctors)   }
+  .dtors   ${RELOCATING-0} : { *(.dtors)   }
+  .rodata  ${RELOCATING-0} : { *(.rodata)  }
+  .rodata1 ${RELOCATING-0} : { *(.rodata1) }
   ${OTHER_READONLY_SECTIONS}
 
   /* Read-write section, merged into data segment: */
   ${RELOCATING+. = ${DATA_ADDR- ALIGN(8) + ${MAXPAGESIZE}};}
-  .data   :
+  .data  ${RELOCATING-0} :
   {
     ${RELOCATING+${DATA_START_SYMBOLS}}
     *(.data)
     ${CONSTRUCTING+CONSTRUCTORS}
   }
-  .data1  : { *(.data1) }
+  .data1 ${RELOCATING-0} : { *(.data1) }
   ${OTHER_READWRITE_SECTIONS}
-  .got          : { *(.got.plt) *(.got) }
-  .dynamic      : { *(.dynamic) }
+  .got         ${RELOCATING-0} : { *(.got.plt) *(.got) }
+  .dynamic     ${RELOCATING-0} : { *(.dynamic) }
   ${DATA_PLT+${PLT}}
   /* We want the small data sections together, so single-instruction offsets
      can access them all, and initialized data all before uninitialized, so
      we can shorten the on-disk segment size.  */
-  .sdata    : { *(.sdata) }
+  .sdata   ${RELOCATING-0} : { *(.sdata) }
   ${RELOCATING+_edata  =  .;}
   ${RELOCATING+PROVIDE (edata = .);}
   ${RELOCATING+__bss_start = .;}
   ${RELOCATING+${OTHER_BSS_SYMBOLS}}
-  .sbss     : { *(.sbss) *(.scommon) }
-  .bss      :
+  .sbss    ${RELOCATING-0} : { *(.sbss) *(.scommon) }
+  .bss     ${RELOCATING-0} :
   {
    *(.dynbss)
    *(.bss)