[Bug 1607] __RTEMS_SIZEOF_VOID_P__ flawed design

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Thu Jul 15 05:44:23 UTC 2010


--- Comment #13 from Ralf Corsepius <ralf.corsepius at rtems.org> 2010-07-15 00:44:22 CDT ---
(In reply to comment #12)
> Let me see if I can sum up the primary issues:
> + can't multilib the autoconf output so the use of generated sizeof can't
>   go in cpukit

You MUST NOT put your ___RTEMS_SIZEOF_VOID_P__ into an installed headers.

This is only tangentially related to autoconf, but actually is a design flaw of
your works.

> + rewriting ISR code in C would be a lengthy undertaking, likely breaking
>   code that is very carefully written.

Wrong again. Converting it into inline-asm is a mechanical task.

> + using a new variable with sizeof(void *) in it will require modifications
>   to the ISR code (which itself is OK) but the additions will add execution
>   time to the most critical part of the system.
Right, it voids what I consider to be an overzealous micro optimization.

> The ISR code is already split between cpukit, libcpu, and libbsp.  SMP
> support will require it to be outside the cpukit.  
Correct, unless the implementation's design is not being changed essentially.

> If we move the ISR code outside cpukit, then how would you prefer the
> offsets be generated?

Me thinks you still have not understood the issue:

- autoconf detected values are configure-time detected constants.
- They are valid only for the CFLAGS having been used at configure-time

=> They are WRONG and INVALID for all other compiler setups (CFLAGS,

=> The autoconf detected constants may only be used inside of the build-tree
and must not be explictily exported from the build-tree (== it is wrong to
install them).

i.e. there is nothing wrong in using autoconf's SIZEOF_VOIDP during
compilation, except that you must not export the results in headers.

Unfortunately your code is not designed in a way making this easy.

Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the bugs mailing list