bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

strip doesn't maintain /LARGEADDRESSAWARE flag


From: Jan Nijtmans
Subject: strip doesn't maintain /LARGEADDRESSAWARE flag
Date: Fri, 11 Feb 2005 09:23:50 +0100 (CET)
User-agent: SquirrelMail/1.4.3a

First, I used the strip utility from the latest mingw candidate build:
  $ strip -V
  GNU strip 2.15.94 20050118
  Copyright 2004 Free Software Foundation, Inc.
  This program is free software; you may redistribute it under the terms of
  the GNU General Public License.  This program has absolutely no warranty.

This bug can be reproduced as follows:

Take any executable "foo.exe", and do the following
(editbin and dumpbin are part of Microsoft Visual Studio):

  strip foo.exe
  editbin /LARGEADDRESSAWARE foo.exe
  dumpbin /headers foo.exe
  strip foo.exe
  dumpbin /headers foo.exe

The result from the first "dumpbin" is something like:
  Microsoft (R) COFF/PE Dumper Version 7.10.3077
  Copyright (C) Microsoft Corporation.  All rights reserved.
  ...
  FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        42089C30 time date stamp Tue Feb 08 12:02:08 2005
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             32F characteristics
                   Relocations stripped
                   Executable
                   Line numbers stripped
                   Symbols stripped
                   Application can handle large (>2GB) addresses
                   32 bit word machine
                   Debug information stripped
  ...

The result of the second "dumpbin" is something like:
  Microsoft (R) COFF/PE Dumper Version 7.10.3077
  Copyright (C) Microsoft Corporation.  All rights reserved.
  ...
FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        42089CD0 time date stamp Tue Feb 08 12:04:48 2005
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             30F characteristics
                   Relocations stripped
                   Executable
                   Line numbers stripped
                   Symbols stripped
                   32 bit word machine
                   Debug information stripped
  ...

This shows that the /LARGEADDRESSAWARE flag is stripped from
the executable, which shouldn't be done. The effect of this is
that this executable can not address more than 2GB of (virtual)
memory.

Regards,
          Jan Nijtmans





reply via email to

[Prev in Thread] Current Thread [Next in Thread]