This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: arm-pe: Multiple inheritance problem w/C++


"Craig A. Vanderborgh" <craigv@voxware.com> writes:

> Apparently the problem resides in bfd/coff-arm.c.  Another fellow
> arm-wince-pe sufferer pointed this out (at about line 237, coff-arm.c):

...

> Turning on ARM_COFF_BUGFIX corrects the C++ problem as demonstrated by
> CastTest.  So yes, this is apparently a linker problem - via bfd.

Thanks for tracking it down.  Technically I would describe this as a
generic linker problem which doesn't have anything in particular to do
with C++ constructors.  That is, it should be entirely possible to
construct a test case which does not use C++ constructors but which
demonstrated this same problem.

It sounds like a valid patch would be to bfd/config.bfd, to add
-DARM_COFF_BUGFIX to targ_cflags in the arm-wince-pe configuration
section.

(Really this approach is wrong, because it means that the same BFD
target will have different behaviour.  The proper approach would be to
use a different target somehow.  But that is a larger fix which can
probably wait for another day.)

> This brings up the larger question - what can we (that is us, at this
> end..) to to help facilitate getting arm-wince-pe binutils fully
> operational?  It is clear that the maintainers have little interest in
> Wince.  I can't say I blame them.  But we are interested (and have to
> be!!), and maybe we could help out somehow and get these kinds of
> problems found and fixed...
> 
> We would be willing to run the testsuite.  But on wince, we are unsure
> how you would even do it.  Is there a way that we could set up the
> testsuite so that the tests could be run under the arm-wince-pe
> simulator?  Can we submit patches somewhere that someone will pay
> attention to?  We would welcome any advice you might have..

Well, you can test a binutils target without actually executing the
test.  You do this by doing a link and then using objdump to examine
the result.  There are many examples in the existing linker testsuite.
So in principle it should be possible to write tests for arm-wince-pe,
and then run the tests on a Unix system, or on a Windows system with
cygwin installed.  In practice this is tedious, but it is doable and
it has been done for other targets.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]