delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2017/05/08/18:23:16

X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f
X-Recipient: djgpp-workers AT delorie DOT com
Message-ID: <5910F06D.9060704@gmx.de>
Date: Tue, 09 May 2017 00:25:49 +0200
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-workers AT delorie DOT com]" <djgpp-workers AT delorie DOT com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.13) Gecko/20101206 SUSE/3.1.7 Thunderbird/3.1.7
MIME-Version: 1.0
To: djgpp-workers AT delorie DOT com
Subject: Differences between i386go32.sc from the DJGPP port and the one provided
by the official binutils and question about the status of lto support for
DJGPP.
X-Provags-ID: V03:K0:0JQ2BDOtBa8LEeuI36Nwe9VULQ9Nd0+71yV0VPndK09K9HSmzpR
wHySyMz5tvVkKfv5WaEx/5vBzFqk0mUU6Ydyg5jtaipOn8AHEBX9aV224XjhmjbxFarvNi6
Ow8T2ElUCnI3NemwS4kmS4II3J3NLqinyynkNTdLIfL7zSwr+K5zAbBE/VfCXgQ1YiPTRH+
ezhMbmhPIPUroRSUNKVQg==
X-UI-Out-Filterresults: notjunk:1;V01:K0:D0dXVJSyxLg=:fKEQaZnpd3oZkL4QXD84Yr
EBxf0/3BeOUwRzdEi4lczuBy7U8Ovf7gBicfwN08o+bez1qGXzyokR4kYnxQr+j+lf8PzBenH
KAqhS5F3RgM/qoAjrlECZCf7+B9jcF1uBHHWP8fAzYMncUkJ++VRxbUAjiGjYi8v0ND096Att
5kLl30DoCs8leoCQ1zKZK4B3eFdcNGNIM2KZ5hNOkO7WpK5cijdFuCswpuZ/9wqwi5yIOqo5m
xQvBCpxhyXDd/Sntapu5AtWvKvGF68NxWznl0tIudtUykVBBUv5oVX4G2Jzue8xSa6W3ywf2d
PzStsN4bfNPUi9l7gpJIfSqBDfJnh0bc6yW+33iFVgQK1LqlzT94JHXB41PorUXhecO6yJeYF
XOs/snB/iT+nsh+Lz8cKs8nluC5121jhh7/omQmKfKB1rBoVHCqrSyBs4K/WNmHe4M1QF7Dqy
2tSnERRGEbFXpfN0d/BLgspwkeefgom+wn1XIcKCxTe1+ckYHyWQKkAEZYNiNXvXYquwZujzd
5QItEkcEH3aqhYw7co5h0OC2VhocvflZkb/TnRaH3XvFG3nmTtWRyI+TNx4dkjdzLpXTHWP+g
+rihb7uedbhJ/SY1J1/lJX0MiGuAyFvPPSa6sYR1AAnWB4fIiAWsNiRmR9n9XJE0B3btuIISJ
nFERg8XB7AItz/Pe0+J+yAxYIyUk4tVH5dBgBLDSTAeFlhVwaMHA9lbBSh25aNSZiYQKRNwaN
jq+X7hsb9Cr2/knZGWiAT2ENYbRZH/6Piw64l6EVULXPriQv3YgjJbdXoS8c/onyWI0DCBAJt
YfnkEWI
Reply-To: djgpp-workers AT delorie DOT com

The patch below shows what currently is added/changed to the "official" linker
script.  The question is: what of this is required and should be submitted to
the binutils maintainers?  What is the status/plans for the lto support for DJGPP?
Probably the _environ related entries should be submitted.  I will not submit
anything to the maintainers.  May be DJ and/or Andris can decide what of these
changes should be become part of the next official binutils release.  I do not
know if there is still some one with write access to the binutils repository
but I do not want to ask the binutils maintainers for inclusion of DJGPP
specific changes.  Some one else shall do this.  This issue is related to:
   <http://www.delorie.com/archives/browse.cgi?p=djgpp/2017/05/06/17:45:12>
Please let me know if something is missing or required.

Regards,
Juan M. Guerrero



diff -aprNU5 binutils-2.28.orig/ld/scripttempl/i386go32.sc binutils-2.28/ld/scripttempl/i386go32.sc
--- binutils-2.28.orig/ld/scripttempl/i386go32.sc	2017-03-02 08:23:50 +0000
+++ binutils-2.28/ld/scripttempl/i386go32.sc	2017-03-07 21:51:46 +0000
@@ -45,18 +45,27 @@ SECTIONS
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
      *(SORT(.ctors.*))
      *(.ctor)
+    *(.ctors)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
      *(SORT(.dtors.*))
      *(.dtor)
+    *(.dtors)
      djgpp_last_dtor = . ;}
+    __environ = . ;
+    PROVIDE(_environ = .) ;
+    LONG(0) ;
      *(.data)
      ${RELOCATING+*(.data.*)}

+    /* Ugly workaround to prevent entire .bss to have attribute CONTENT */
+    /* for C++ executables. */
+    *(.bss.*)
+
      ${RELOCATING+*(.gcc_exc*)}
      ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
      ${RELOCATING+*(.eh_fram*)}
      ${RELOCATING+___EH_FRAME_END__ = . ;}
      ${RELOCATING+LONG(0);}
@@ -67,15 +76,17 @@ SECTIONS
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
    ${CONSTRUCTING+${RELOCATING-$DTOR}}
    .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
    { 					
-    *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*})
+    *(.bss${RELOCATING+ .gnu.linkonce.b.*})
      *(COMMON)
      ${RELOCATING+ end = . ; PROVIDE(_end = .) ;}
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
+  /* Discard LTO sections.  */
+  /DISCARD/ : { *(gnu.lto_*) }
    /* Stabs debugging sections.  */
    .stab 0 : { *(.stab) }
    .stabstr 0 : { *(.stabstr) }
  EOF

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019