Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 12 Jul 2002 18:11:08 +0400 From: egor duda Reply-To: egor duda Organization: deo X-Priority: 3 (Normal) Message-ID: <17484095953.20020712181108@logos-m.ru> To: Wolfgang Hesseler CC: cygwin AT cygwin DOT com Subject: Re: Bug: BSS segment in COFF files In-Reply-To: <3D2EE0C2.78D6@multimediaware.com> References: <3D2EA2E2 DOT 2881 AT multimediaware DOT com> <8772121004 DOT 20020712145134 AT logos-m DOT ru> <3D2EBFC2 DOT 6973 AT multimediaware DOT com> <9975891676 DOT 20020712155424 AT logos-m DOT ru> <3D2EC616 DOT 19DA AT multimediaware DOT com> <9382195250 DOT 20020712173928 AT logos-m DOT ru> <3D2EE0C2 DOT 78D6 AT multimediaware DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! Friday, 12 July, 2002 Wolfgang Hesseler qv AT multimediaware DOT com wrote: >> >> >> If you run gcc with '--save-temps' flag, and then look into >> >> >> 'yourfile.s' file, you'll see that uninitialized data is tagged as >> >> >> "common" (using '.comm' directive) and is put to bss only by linker >> >> >> when final executable is created. To turn this feature off, use >> >> >> '-fno-common' flag when compiling your object file. WH> I just noticed that this doesn't help at all. When analyzing the WH> object file with IDA you'll see that the BSS section has length 0. WH> Thus, when you link several object files together, all variables WH> are at the same memory position. I think it's a problem with the WH> Assembler that doesn't generate valid COFF files. BTW, when WH> compiling the same program under Linux the BSS section is not 0. So, WH> it seems that the problem is Cygwin (COFF) specific. WH> So far, the only way to reserve memory for a variable is to make WH> it 0-initialized. Huh? $ cat x.c int a; static int b[10000]; $ gcc -fno-common -save-temps -c x.c $ cat x.s .file "x.i" .globl _a .bss .align 4 _a: .space 4 .lcomm _b,40000 $ objdump --section-headers x.o Idx Name Size VMA LMA File off Algn 0 .text 00000000 00000000 00000000 00000000 2**2 ALLOC, LOAD, CODE 1 .data 00000000 00000000 00000000 00000000 2**2 ALLOC, LOAD, DATA 2 .bss 00009c48 00000000 00000000 00000000 2**2 ALLOC Egor. mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/