Uurgh, I totally missed this message before posting the other one...

I've posted an updated patch against trunk at cegcc-de...@.  It should
fix the alignment issue.  ".align FOO" on ARM coff works like on elf, that
is, FOO is power 2 aligment...  I've also fixed a couple of __dllimport
issues on ARM, so I wouldn't be suprised if the malloc issue is gone,
but I haven't really spend more than 10 seconds looking at your report
yet.  (Sorry, I'm swamped at the moment).

On Friday 13 February 2009 18:44:14, Vincent R. wrote:
> Hi,
> 
> I have updated the patch to generate a cegcc based on gcc-trunk.
> There have been some changes in the way to generate shared libgcc so I have
> updated
> config.gcc and t-wince-pe
> (http://www.nabble.com/-PATCH--Fix-PR38904:-mis-named-libgcc-DLL-on-cygwin.-td21609057.html):
> 
> config.gcc:
> 
> ...
> +     if test x$sjlj = x0; then
> +             tmake_eh_file="i386/t-dw2-eh"
> +     else
> +             tmake_eh_file="i386/t-sjlj-eh"
> +     fi
> +     tmake_file="${tmake_file} ${tmake_eh_file} arm/t-arm arm/t-wince-pe
> arm/t-cygming arm/t-mingw32"
> ...
> 
> Unfortunately code generated with cegcc-4.4 seems to be invalid and is not
> loaded anymore, even on WM5.
> For now don't know why.
> To be more precise , DLL(testDll.dll) generated with cegcc-4.4 can be
> loaded by an application(testDllexe.exe) 
> compiled with cegcc-4.1 but the same application compiled with cegcc-4.4
> cannot load it.
> Amongst differences on testDllexe.exe between 4.1.0 and 4.4.0, there are 
> 
> 1) alignement
> 
> with cegcc-4.4.0 & VS2008
> 
> .text:00011000
> .text:00011000 ; Segment type: Pure code
> .text:00011000                 AREA .text, CODE, READWRITE, ALIGN=4
> .text:00011000                 ; ORG 0x11000
> .text:00011000                 CODE32
> 
> with cegcc-4.1.0
> 
> .text:00011000
> .text:00011000 ; Segment type: Pure code
> .text:00011000                 AREA .text, CODE, READWRITE
> .text:00011000                 ; ORG 0x11000
> .text:00011000                 CODE32
> 
> 
> and I have noticed some weird things about PE section characteristics but
> not sure this is the 
> right direction. 
> For instance from what I understand align directive modify alignment in DLL
> charcteristics, that's why
> we have 0x00500000 ie IMAGE_SCN_ALIGN_16BYTES while when there is no align
> directive default is
> 0x00300000 IMAGE_SCN_ALIGN_4BYTES               
> 
> I don't really understand why .ALIGN 4 generates a IMAGE_SCN_ALIGN_16BYTES
> by the way ...
> 
> .text:  60500020h
> .data:  C0500040h
> .rdata: 40500040h
> .bss:   C0500080h
> .idata: C0300040h
> 
> so you can see that .idata has a different alignment from other sections, I
> am not saying this is the problem
> but I think there might be some thniking about how alignment is handled in
> binutils.
> I may ask on their ML to have more information about that.
> I tried to force in binutils to have the same alignement and it doesn't fix
> it but I find it more
> logical to keep same alignment on all sections.
> 
> 2) GCC now is handling malloc import differently and gcc is testing if it
> can loads libgcj_s.dll 
> 
> 
> 
> .text:0001153C malloc                                  ; CODE XREF:
> sub_11390+8p
> .text:0001153C                 LDR     R12, =__imp_malloc
> .text:00011540                 LDR     PC, [R12]
> .text:00011540 ; End of function malloc
> .text:00011540
> .text:00011540 ;
> ---------------------------------------------------------------------------
> .text:00011544 off_11544       DCD __imp_malloc        ; DATA XREF:
> mallocr
> .text:00011548                 ALIGN 0x10
> .text:00011550                 STMFD   SP!, {R11,LR}
> .text:00011554                 ADD     R11, SP, #4
> .text:00011558                 BL      sub_11060
> .text:0001155C                 LDR     R0, =loc_110C0
> .text:00011560                 LDMFD   SP!, {R11,LR}
> .text:00011564                 B       sub_112B0
> .text:00011564 ;
> ---------------------------------------------------------------------------
> 
> 
> .text:00011060 sub_11060                               ; CODE XREF:
> .text:00011558p
> .text:00011060
> .text:00011060 var_4           = -4
> .text:00011060
> .text:00011060                 STMFD   SP!, {R4,R11,LR}
> .text:00011064                 LDR     R3, =unk_12010
> .text:00011068                 ADD     R11, SP, #0xC+var_4
> .text:0001106C                 LDR     R3, [R3]
> .text:00011070                 CMP     R3, #0
> .text:00011074                 LDMEQFD SP!, {R4,R11,PC}
> .text:00011078                 LDR     R0, =aLibgcj_s_dll
> .text:0001107C                 BL      GetModuleHandleW
> .text:00011080                 CMP     R0, #0
> .text:00011084                 BEQ     loc_11094
> .text:00011088                 LDR     R1, =a_jv_registercl
> .text:0001108C                 BL      GetProcAddressW
> .text:00011090                 MOV     R4, R0
> .text:00011094
> .text:00011094 loc_11094                               ; CODE XREF:
> sub_11060+24j
> .text:00011094                 CMP     R4, #0
> .text:00011098                 LDMEQFD SP!, {R4,R11,PC}
> .text:0001109C                 LDR     R0, =unk_12010
> .text:000110A0                 MOV     LR, PC
> .text:000110A4                 MOV     PC, R4
> .text:000110A8                 LDMFD   SP!, {R4,R11,PC}
> .text:000110A8 ; End of function sub_11060
> 
> 
> Once again I don't know if it's the reason executable doesnt' load the DLL
> but it's
> a difference to notice.
> 
> 
> 
> 
> 
> 
> 
> Vincent R.
> 
> 



-- 
Pedro Alves

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to