This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [patch] Only build personality routine for SymbianOS.
> Benjamin, have you had a chance to look at this?
Thanks for your patience. I was able to look at this today.
For some time I've been thinking that there is a better way to organize libsupc++ for the various arm twisting.... I would like a cleaner separation between the arm extra bits and the rest of the stuff that is used by everybody. It seems like the arm-specific runtime bits have been growing in an ad-hoc manner, and at this time it's sufficiently large that it deserves a bit more thought.
One way to do this would be to use something like host_sources and move the _ARM_EABI_UNWINDER bits as follows:
eh_arm as is
eh_call -> eh_call_arm
eh_personality -> eh_personality_arm
vec.cc -> vec_arm.cc
Then, for arm host_sources will be
host_sources = \
eh_arm.cc eh_call_arm.cc eh_personality_arm.cc vec_arm.cc
libsupc___la_SOURCES = $(sources) $(c_sources) $(host_sources)
libsupc__convenience_la_SOURCES = $(sources) $(c_sources) $(host_sources)
The non-arm targets won't have this.
Anyway. I think this will allow a bit more granularity for the symbian
config (which is different or a subset of __arm__ and __ARM_EABI__ and
__ARM_EABI_UNWINDER, eh? I don't fully understand the varoius
permutations. Does symbian arm define _ARM_EABI_UNWINDER, but unlike
arm-elf, it only needs the personality routines?)
More comments about this patch in particular.
1) LIBSUPCXX_PRONLY should be LIBSUPCXX_PERSONALITY_ONLY
2) edit Makefile.am not include/Makefile.am to not install the include files
3) with the changes above, you can use host_sources to do the libsupc++/Makefile.am bits
Thoughts?
> If you need more explanation of why this makes sense on SymbianOS, the
> key point is that the ARM EABI allows folks to use an alternative C++
> runtime library -- but we still need the G++ personality routine. If
> you thought of libstdc++ as consisting of three things: (1) EH
> personality routines, (2) libsupc++, and (3) STL, I/O, etc., then the
> system library provides (2) and (3). We just need (1).
Ok.
-benjamin