delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/08/17/12:36:44

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; q=dns; s=default; b=mYxhW6
dDpNFonQWgPDKa/vKEEG7BAx0v6kld4tkpbfaKaPAssbTsx2CQOC3suPPLRNQ9rU
UKy6cIWROajP/SoOGNGrLBd3k3PhE0mW8HQn4geOu50Uvd3V/9OLdM0s/Tg7sqeV
fNQY1Jayh8szjaiTgq6Gn3YSML9cgTUfFHsmM=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type; s=default; bh=W6nyliDUPlaE
Z9rxtZHkj5vFvuA=; b=dmK2Vrrr5ILYqyWIbpLEU6Bey55wfdYwIOSYSdq10GGf
Qu41GaYYNU4/deBKJQ9bK0XoEpgjA2R3D3rgKOmauiOLGJkCzjL9ScNO58rFQacW
mLo56GSFHSbIWxfaADrB0Q4bq+R6Z4303PwuzbOTSe8oajbDuO1d3+Z4rXRWF0o=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Spam-SWARE-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_NO,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.2
Message-ID: <520FA685.801@t-online.de>
Date: Sat, 17 Aug 2013 18:36:21 +0200
From: Christian Franke <Christian DOT Franke AT t-online DOT de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 SeaMonkey/2.19
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: binutils feature request: ld --disable-large-address-aware [PATCH]
References: <520D2A71 DOT 3000109 AT t-online DOT de>
In-Reply-To: <520D2A71.3000109@t-online.de>
X-Virus-Found: No

--------------060002050404030709080201
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Christian Franke wrote:
> A few programs are not compatible with --large-address-aware which is 
> enabled by default in current x86 ld. For example cdrkit, dvd+rw-tools 
> and smartmontools use IOCTL_SCSI_PASS_THROUGH_DIRECT which apparently 
> requires user buffers below 2GiB.
>
> Using "LDFLAGS=-Wl,--disable-large-address-aware" would be much easier 
> than adding an extra Cygwin specific "peflags --bigaddr=false *.exe" 
> post-build step.
>
> (http://cygwin.com/ml/cygwin/2012-04/msg00342.html :-)

With the attached patch, "gcc -Wl,--disable-large-address-aware ..." 
works as expected. Documentation update is missing.

It would probably make sense to add a --enable-large-address-aware 
option as a synonym for --large-address-aware to keep enable/disable 
options consistent.

There is a similar issue with --tsaware. It is enabled by default in 
spec file but cannot be disabled in gcc command line. I don't know 
whether there is a need for --disable-tsaware.

Christian


--------------060002050404030709080201
Content-Type: text/x-patch;
 name="binutils-disable-large-address-aware.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="binutils-disable-large-address-aware.patch"

diff -ru binutils-2.23.52-5/origsrc/src/ld/emultempl/pe.em binutils-2.23.52-5/src/src/ld/emultempl/pe.em
--- binutils-2.23.52-5/origsrc/src/ld/emultempl/pe.em	2013-04-29 10:22:16.000000000 +0200
+++ binutils-2.23.52-5/src/src/ld/emultempl/pe.em	2013-08-17 17:56:52.791228500 +0200
@@ -242,8 +242,10 @@
 					(OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC + 1)
 #define OPTION_LARGE_ADDRESS_AWARE \
 					(OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC + 1)
-#define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1	\
+#define OPTION_DISABLE_LARGE_ADDRESS_AWARE \
 					(OPTION_LARGE_ADDRESS_AWARE + 1)
+#define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1	\
+					(OPTION_DISABLE_LARGE_ADDRESS_AWARE + 1)
 #define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2	\
 					(OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 + 1)
 #define OPTION_EXCLUDE_MODULES_FOR_IMPLIB \
@@ -333,6 +335,7 @@
     {"enable-runtime-pseudo-reloc-v2", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2},
 #endif
     {"large-address-aware", no_argument, NULL, OPTION_LARGE_ADDRESS_AWARE},
+    {"disable-large-address-aware", no_argument, NULL, OPTION_DISABLE_LARGE_ADDRESS_AWARE},
     {"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES},
     {"disable-long-section-names", no_argument, NULL, OPTION_DISABLE_LONG_SECTION_NAMES},
     {"dynamicbase",no_argument, NULL, OPTION_DYNAMIC_BASE},
@@ -472,6 +475,8 @@
 #endif
   fprintf (file, _("  --large-address-aware              Executable supports virtual addresses\n\
                                        greater than 2 gigabytes\n"));
+  fprintf (file, _("  --disable-large-address-aware      Executable does not support virtual\n\
+                                       addresses greater than 2 gigabytes\n"));
   fprintf (file, _("  --enable-long-section-names        Use long COFF section names even in\n\
                                        executable image files\n"));
   fprintf (file, _("  --disable-long-section-names       Never use long COFF section names, even\n\
@@ -828,6 +833,9 @@
     case OPTION_LARGE_ADDRESS_AWARE:
       real_flags |= IMAGE_FILE_LARGE_ADDRESS_AWARE;
       break;
+    case OPTION_DISABLE_LARGE_ADDRESS_AWARE:
+      real_flags &= ~ IMAGE_FILE_LARGE_ADDRESS_AWARE;
+      break;
     case OPTION_ENABLE_LONG_SECTION_NAMES:
       pe_use_coff_long_section_names = 1;
       break;


--------------060002050404030709080201
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--------------060002050404030709080201--

- Raw text -


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