www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/01/21/16:00:11

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: RazorSliph <sliph AT gmx DOT net>
Newsgroups: comp.os.msdos.djgpp
Subject: -fpack-struct issues
Message-ID: <6kvo4ukaf4ceud3gn6pp0ut7t08jsup0kv@4ax.com>
X-Newsreader: Forte Agent 1.8/32.553
MIME-Version: 1.0
Lines: 72
Date: Mon, 21 Jan 2002 15:57:26 -0500
NNTP-Posting-Host: 24.200.83.135
X-Complaints-To: abuse AT videotron DOT ca
X-Trace: wagner.videotron.net 1011646611 24.200.83.135 (Mon, 21 Jan 2002 15:56:51 EST)
NNTP-Posting-Date: Mon, 21 Jan 2002 15:56:51 EST
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Greetings! I need to compile an application using the -fpack-struct so
that the structures generated (and written to disk) are identical to
the saved structures created by another program.  The structures,
unfortunately, are 10 bytes wide, and get padded to 12 bytes with a
base compile.
However, whenever I compile with the -fpack-struct option, the
resulting executable segfaults. (GPF's)

Is there some kind of workaround (other than memcpying the structs to
arrays of bytes, or other kludges) ? Or am I unique in experiencing
this problem?

Here's a trial run I did with a hello world proggie:


D:\home\hello>dir
 Volume in drive D is Dogma
 Volume Serial Number is 4C1B-1934

 Directory of D:\home\hello

21/01/2002  03:48 PM    <DIR>          .
21/01/2002  03:48 PM    <DIR>          ..
21/01/2002  03:49 PM               157 hello.cc
               1 File(s)            157 bytes
               2 Dir(s)  13,691,617,280 bytes free

D:\home\hello>type hello.cc
  #include <string>
  #include <iostream>
  using namespace std;
  int main() {
    string s="Hello world!\n";
    cout << s;
  }

D:\home\hello>gxx hello.cc -o hello.exe

D:\home\hello>hello
Hello world!

D:\home\hello>gxx hello.cc -o hello.exe -fpack-struct

D:\home\hello>hello
Exiting due to signal SIGSEGV
General Protection Fault at eip=00018acc
eax=60000000 ebx=00000000 ecx=00000000 edx=000bfaa4 esi=00000001
edi=0003fb60
ebp=000bfa5c esp=000bfa48 program=D:\HOME\HELLO\HELLO.EXE
cs: sel=01a7  base=02980000  limit=000cffff
ds: sel=01af  base=02980000  limit=000cffff
es: sel=01af  base=02980000  limit=000cffff
fs: sel=017f  base=000058e0  limit=0000ffff
gs: sel=01bf  base=00000000  limit=0010ffff
ss: sel=01af  base=02980000  limit=000cffff
App stack: [000bfb60..0003fb60]  Exceptn stack: [0003fabc..0003db7c]

Call frame traceback EIPs:
  0x00018acc
  0x0001857b
  0x00018a8d
  0x00010e58
  0x00010f39
  0x00001f90
  0x00002035
  0x0000a67f
  0x00005a6e

D:\home\hello>

Thanks.

- Raw text -


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