[uClinux-dev] Re: [PATCH] m68k,m68knommu: merge header files

Geert Uytterhoeven geert at linux-m68k.org
Fri Jan 16 07:57:11 EST 2009


On Fri, 16 Jan 2009, Greg Ungerer wrote:
> Sam Ravnborg wrote:
> > > From 5a8b9717a399679c4753e596ea864b02a1197025 Mon Sep 17 00:00:00 2001
> > From: Sam Ravnborg <sam at ravnborg.org>
> > Date: Sat, 13 Dec 2008 21:23:08 +0100
> > Subject: [PATCH] m68k,m68knommu: merge header files
> > 
> > Merge header files for m68k and m68knommu to the single location:
> > 
> >     arch/m68k/include/asm
> > 
> > The majority of this patch was the result of the
> > script that is included in the changelog below.
> > 
> > The script was originally written by Arnd Bergman and
> > exten by me to cover a few more files.
> > 
> > When the header files differed the script uses the following:
> > 
> > The original m68k file is named <file>_mm.h  [mm for memory manager]
> > The m68knommu file is named <file>_no.h [no for no memory manager]
> > 
> > The files uses the following include guard:
> > 
> > This include gaurd works as the m68knommu toolchain set
> > the __uClinux__ symbol - so this should work in userspace too.
> > 
> > Merging the header files for m68k and m68knommu exposes the
> > (unexpected?) ABI differences thus it is easier to actually
> > identify these and thus to fix them.
> > 
> > The commit has been build tested with both a m68k and
> > a m68knommu toolchain - with success.
> > 
> > The commit has also been tested with "make headers_check"
> > and this patch fixes make headers_check for m68knommu.
> > 
> > The script used:
> > TARGET=arch/m68k/include/asm
> > SOURCE=arch/m68knommu/include/asm
> > 
> > INCLUDE="cachectl.h errno.h fcntl.h hwtest.h ioctls.h ipcbuf.h \
> > linkage.h math-emu.h md.h mman.h movs.h msgbuf.h openprom.h \
> > oplib.h poll.h posix_types.h resource.h rtc.h sembuf.h shmbuf.h \
> > shm.h shmparam.h socket.h sockios.h spinlock.h statfs.h stat.h \
> > termbits.h termios.h tlb.h types.h user.h"
> > 
> > EQUAL="auxvec.h cputime.h device.h emergency-restart.h futex.h \
> > ioctl.h irq_regs.h kdebug.h local.h mutex.h percpu.h \
> > sections.h topology.h"
> > 
> > NOMUUFILES="anchor.h bootstd.h coldfire.h commproc.h dbg.h \
> > elia.h flat.h m5206sim.h m520xsim.h m523xsim.h m5249sim.h \
> > m5272sim.h m527xsim.h m528xsim.h m5307sim.h m532xsim.h \
> > m5407sim.h m68360_enet.h m68360.h m68360_pram.h m68360_quicc.h \
> > m68360_regs.h MC68328.h MC68332.h MC68EZ328.h MC68VZ328.h \
> > mcfcache.h mcfdma.h mcfmbus.h mcfne.h mcfpci.h mcfpit.h \
> > mcfsim.h mcfsmc.h mcftimer.h mcfuart.h mcfwdebug.h \
> > nettel.h quicc_simple.h smp.h"
> > 
> > FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \
> > cacheflush.h checksum.h current.h delay.h div64.h \
> > dma-mapping.h dma.h elf.h entry.h fb.h fpu.h hardirq.h hw_irq.h io.h \
> > irq.h kmap_types.h machdep.h mc146818rtc.h mmu.h mmu_context.h \
> > module.h page.h page_offset.h param.h pci.h pgalloc.h \
> > pgtable.h processor.h ptrace.h scatterlist.h segment.h \
> > setup.h sigcontext.h siginfo.h signal.h string.h system.h \
> > thread_info.h timex.h tlbflush.h traps.h uaccess.h ucontext.h \
> > unaligned.h unistd.h"
> > 
> > mergefile() {
> > 	BASE=${1%.h}
> > 	git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no.h
> > 	git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm.h
> > 
> > cat << EOF > ${TARGET}/$1
> > EOF
> > 
> > 	git add ${TARGET}/$1
> > }
> > 
> > set -e
> > 
> > mkdir -p ${TARGET}
> > 
> > git mv include/asm-m68k/* ${TARGET}
> > rmdir include/asm-m68k
> > 
> > git rm ${SOURCE}/Kbuild
> > for F in $INCLUDE $EQUAL; do
> > 	git rm ${SOURCE}/$F
> > done
> > 
> > for F in $NOMUUFILES; do
> > 	git mv ${SOURCE}/$F ${TARGET}/$F
> > done
> > 
> > for F in $FILES ; do
> > 	mergefile $F
> > done
> > 
> > rmdir arch/m68knommu/include/asm
> > rmdir arch/m68knommu/include
> > 
> > Cc: Arnd Bergmann <arnd at arndb.de>
> > Cc: Geert Uytterhoeven <geert at linux-m68k.org>
> > Cc: Greg Ungerer <gerg at uclinux.org>
> > Signed-off-by: Sam Ravnborg <sam at ravnborg.org>
> 
> So I took this, applied, and have been running some tests
> on m68knommu.
> 
> I had to make 2 small changes to make it work on 2.6.29-rc1.
> I had to add swab.h into the list of FILES, and move the seting
> of hdr-arch for m68knommu in the top level Makefile to after the
> global hdr-arch setting (so all of about 3 lines later).
> 
> Otherwise it builds and runs fine for m68knommu in all
> cases I have tested so far.

Thanks!

> I have this applied as the only change at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu.git
> m68k-merge-includes

Huh, is this git repository really ca. 200 MiB?

> Sam Ravnborg (1):
>       m68k,m68knommu: merge header files
> 
> 
> More review, testing, comments welcome...
> Where to from here?

I'll pull from it and give it some m68k test builds.
After that, you can move it to for-next. If everything's well, it can go to
Linus.

Or should I amend and add my SoB and put it in m68k for-next?

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



More information about the uClinux-dev mailing list