machine/platform separation

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Mon Jan 15 19:46:59 PST 2007


Matthew Dillon wrote:
:so it seems i can't convice you to use "i386" for the platform?  the problem is that there are a myriad place in the source tree which check for i386, or worse, use i386 as a part of the path.  repo-moving all of this to pc32 seems totally unnecessary and wrong.  just have a look at usr.sbin or how man handles the pathnames.  this renaming is a pain in the ass once you look outside the kernel.
    The location of the header files is synthesized in /usr/include when the
    world/kernel is installed.  It has little to do with how they are
    arranged in the source tree.
I'm not talking about header files, but about all other files.  A small excerpt:

src/etc/etc.i386
src/gnu/usr.bin/binutils215/as/i386-dragonfly
src/gnu/usr.bin/binutils215/ld/Makefile.i386
src/gnu/usr.bin/binutils215/libbfd/Makefile.i386
src/gnu/usr.bin/binutils215/libbinutils/Makefile.i386
src/gnu/usr.bin/binutils215/libopcodes/Makefile.i386
src/gnu/usr.bin/cc34/cc_prep/config/i386
src/gnu/usr.bin/cc41/cc_prep/config/i386
src/gnu/usr.bin/gdb/kgdb/trgt_i386.c
src/gnu/usr.bin/gdb/libbfd/Makefile.i386
src/gnu/usr.bin/gdb/libgdb/Makefile.i386
src/gnu/usr.bin/gdb/libopcodes/Makefile.i386
src/lib/compat/i386
src/lib/csu/i386
src/lib/libc/i386
src/lib/libc_r/arch/i386
src/lib/libcaps/i386
src/lib/libkvm/kvm_i386.c
src/lib/libm/arch/i386
src/lib/libmd/i386
src/lib/libstand/i386
src/lib/libsys/genhooks/output_i386.c
src/lib/libthread_xu/arch/i386
src/lib/libthread_xu/arch/i386/i386
src/libexec/rtld-elf/i386
src/sbin/i386
src/secure/lib/libcrypto/opensslconf-i386.h
src/share/man/man4/man4.i386
src/share/man/man8/man8.i386
[sys snipped]
src/usr.bin/doscmd/i386-pinsn.c
src/usr.bin/gprof/i386.c
src/usr.bin/gprof/i386.h
src/usr.bin/truss/i386-fbsd.c
src/usr.bin/truss/i386-linux.c
src/usr.bin/truss/i386.conf
src/usr.bin/truss/i386linux.conf
files referencing MACHINE_ARCH:

/repos/src/dragonfly/src/lib/Makefile
/repos/src/dragonfly/src/gnu/usr.bin/gdb/kgdb/Makefile
/repos/src/dragonfly/src/etc/Makefile
/repos/src/dragonfly/src/Makefile.inc1
/repos/src/dragonfly/src/gnu/lib/gcc41/csu/Makefile
/repos/src/dragonfly/src/gnu/lib/gcc34/csu/Makefile
/repos/src/dragonfly/src/sys/conf/kmod.mk
/repos/src/dragonfly/src/sys/conf/kern.fwd.mk
/repos/src/dragonfly/src/include/Makefile
/repos/src/dragonfly/src/sys/dev/sound/pcm/Makefile
/repos/src/dragonfly/src/sys/dev/sound/driver/Makefile
/repos/src/dragonfly/src/lib/libc/sys/Makefile.inc
/repos/src/dragonfly/src/usr.sbin/tcpdump/tcpdump/Makefile
/repos/src/dragonfly/src/nrelease/Makefile
/repos/src/dragonfly/src/secure/lib/libcrypto/Makefile.inc
/repos/src/dragonfly/src/share/mk/bsd.cpu.gcc41.mk
/repos/src/dragonfly/src/share/mk/bsd.cpu.gcc34.mk
/repos/src/dragonfly/src/usr.sbin/config/main.c
/repos/src/dragonfly/src/share/mk/sys.mk
/repos/src/dragonfly/src/sbin/Makefile
/repos/src/dragonfly/src/usr.sbin/Makefile
/repos/src/dragonfly/src/sys/emulation/linux/Makefile
/repos/src/dragonfly/src/sys/dev/est/Makefile
/repos/src/dragonfly/src/sys/dev/acpica5/Makefile
/repos/src/dragonfly/src/sys/conf/kern.pre.mk
/repos/src/dragonfly/src/sys/Makefile
/repos/src/dragonfly/src/lib/libc/stdlib/Makefile.inc
[snip a lot more]
in total 110 from my quick count, and possibly MACHINE_ARCH is indirectly used somewhere else as well.

to do it properly, we'd have to check all occurences are decide if they are CPU, MACHINE or PLATFORM, right?  and if they happen to be PLATFORM specific, they would need to be renamed/rewritten to pc32.

cheers
 simon
--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \




More information about the Kernel mailing list