[Ecls-list] architecture-specific *FEATURES*

Matthew Mondor mm_lists at pulsar-zone.net
Wed Nov 11 05:16:26 UTC 2009


Hello again,

I noticed lately that despite supplying custom CFLAGS (which ECL build
as well as subsequent ECL Lisp->C compilations observe properly),
*FEATURES* still holds :ATHLON if for instance the build was done on an
athlon system, which is not ideal if the same binary ECL is then used
on another system...

Several projects, like mplayer support a runtime-detection option which
if disabled avoids to remember anything about the system it was built
on, perhaps that ECL could also do similar when built with custom
CFLAGS?

The flags in question in this case were CFLAGS='-march=i686 -O2' which
produces code which should work on all i686 systems (including amd64
ones where the OS is 32-bit or supports 32-bit userland compatibility
(i.e. via COMPAT_NETBSD32)).  If later software relied on :ATHLON being
present for a particular implementation of an algorithm, this could
then crash on non-AMD systems.

Since package managers might also build a package once for a variety of
similar architectures, it would probably be nice to either have an
option to disable any machine-dependent *FEATURES* being added, or
for ECL to automatically avoid filling those if CFLAGS is supplied
rather than automatically detected.

Note that I've not looked into the implementation details yet to
suggest a diff, although I'd like to know if there's any existing
precedent about this I'm unaware of, or if the suggestion is welcome.

Thanks,
-- 
Matt




More information about the ecl-devel mailing list