This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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: [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


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