This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: arm-wince-pe-ld: Trouble creating DLL
- From: Nick Clifton <nickc at redhat dot com>
- To: Craig Vanderborgh <craigv at voxware dot com>
- Cc: binutils at sources dot redhat dot com
- Date: 18 Nov 2002 13:23:07 +0000
- Subject: Re: arm-wince-pe-ld: Trouble creating DLL
- References: <3DD41653.C09D51D2@voxware.com>
Hi Craig,
> I am trying to create a DLL using an arm-wince-pe cross-compile of
> binutils2.13 on RedHat 7.1/x86. I am using GCC 3.2 that I compiled
> for arm-wince-pe myself. I have been able to link .exe's, but when
> I try to create a DLL, I get the following error:
>
> arm-wince-pe-ld: ERROR:
> ../../../lib/libcorelibc.a(obj/ARM/SA1100/CE/retail/dllmain.obj.b)
> is compiled as absolute position code, whereas target HelloWorld.dll
> is position independent
>
> I am trying to link against M$ system dll's from EVC 3.0.
It appears that the M$ compiler and GCC disagree about how the flag
bits in f_flags field of the PE file header should be
set/interpretated.
> Is there anything that I can do differently with the link so that
> I can create DLL's? Any ideas or suggestions??
The simplest solution would be to locate and disable this error
message in the linker. Assuming that you are sure that the binaries
should be compatable, then edit the function
coff_arm_merge_private_bfd_data() in bfd/coff-arm.h and disable the
check of the PIC_FLAG. Rebuild/reinstall the linker and see how you
go.
Cheers
Nick