Question about genassym, locore.s and 0-sized arrays (showstopper for an icc compiled kernel)

Dan Nelson dnelson at allantgroup.com
Thu Sep 4 09:29:00 PDT 2003


In the last episode (Sep 04), Alexander Leidinger said:
> At the moment I discussing an issue with Intel regarding 0-sized
> arrays. gcc seems to be violating the standard and produces code with
> an array size of "0", whereas icc produces code where an 0-sized
> array has the size "1". This results in different nm output of
> genassym.o:
[snip] 
>  - If we depend on it: how hard would it be to rewrite it to not depend
>    on 0-sized arrays (and does someone volunteer to rewrite it)? It
>    would be nice if someone could point me to the source if it isn't
>    an easy task, my contact @Intel is willing to convince the
>    developers to change icc, but he has to "present a persuasive
>    argument to development to pursue a solution".

If you're talking FreeBSD 5, you should be able to simply subsitute a
C99 "flexible array member" (basically replace "[0]" with "[]") and get
the same effect.  0-length arrays are a gcc extension:

http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html

Under FreeBSD 4.x, you can't use them because gcc 2.95 only supports
the gcc extension.  Intel has added support for a lot of gcc extensions
recently; they may be willing to add this to the list.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-current mailing list