mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Paul Mundt <lethal@linux-sh.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	David Howells <dhowells@redhat.com>,
	Greg Ungerer <gerg@snapgear.com>,
	linux arch <linux-arch@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux/m68k <linux-m68k@vger.kernel.org>,
	uClinux list <uclinux-dev@uclinux.org>
Subject: Re: kbuild now support arch/$ARCH/include - time for ARCHs to convert
Date: Thu, 31 Jul 2008 22:13:52 +0200	[thread overview]
Message-ID: <20080731201352.GB25305@uranus.ravnborg.org> (raw)
In-Reply-To: <200807312147.25837.arnd@arndb.de>

On Thu, Jul 31, 2008 at 09:47:25PM +0200, Arnd Bergmann wrote:
> On Thursday 31 July 2008, Paul Mundt wrote:
> > This sort of merging is fairly easy to do incrementally, at least by
> > someone that has both platforms available. An easy first step would be to
> > move the m68knommu stuff that are implemented differently over as _nommu
> > files, similar to how the _32/_64 renames happened, and then set about
> > converging the two little by little. This is what I've been doing with
> > sh64->sh integration for example, despite fundamental differences like
> > having a totally different register layout and instruction set.
>  
> I've played around with the purely mechanical side of merging the
> m68k{,nommu} header files and came up with a script to do it.
> All headers that are identical are used from their m68k variant, the
> others get an #include magic like x86 has it for 32/64.
> 
> This assumes that the kernel ABI is compatible and that user space
> can actually use the m68k headers for m68knommu as well.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> TARGET=arch/m68k/include/asm
> SOURCE1=include/asm-m68k
> SOURCE2=include/asm-m68knommu
> FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \
> cacheflush.h checksum.h cputime.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 local.h machdep.h mc146818rtc.h mmu.h mmu_context.h \
> module.h page.h page_offset.h param.h pci.h percpu.h pgalloc.h \
> pgtable.h processor.h ptrace.h scatterlist.h sections.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"
> EXPORTS="byteorder param ptrace sigcontext siginfo signal unistd"
> 
> mergefile() {
> 	BASE=${1%.h}
> 	mv $SOURCE1/$1 $TARGET/${BASE}_mmu.h
> 	mv $SOURCE2/$1 $TARGET/${BASE}_nommu.h
> cat << EOF > $TARGET/$1
> #ifdef __KERNEL__
> #ifdef CONFIG_MMU
> #include "${BASE}_mmu.h"
> #else
> #include "${BASE}_nommu.h"
> #endif
> #else
> #include "${BASE}_mmu.h"
> #endif
> EOF
> }

This will leak a CONFIG_ symbol if the header file
is exported. Can we do it with a gcc defined symbol?
[See how I did it for sparc for instance]

> 
> mergefile2() {
> 	if [ -e ${TARGET}/$1 ] ; then
> 		rm $SOURCE2/$1
> 	else
> 		mv $SOURCE2/$1 ${TARGET}
> 	fi
> }
> 
> addexport() {
> 	echo "unifdef-y += ${1}_mmu.h" >> $TARGET/Kbuild
> }
unifdef is deprecated. Plese use "header-y".
They have same effect these days.

	Sam

  reply	other threads:[~2008-07-31 20:14 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-28 20:05 Sam Ravnborg
2008-07-29  3:06 ` Kyle McMartin
2008-07-29  3:27   ` Sam Ravnborg
2008-07-29 14:21     ` Kyle McMartin
2008-08-09  2:50       ` Sam Ravnborg
2008-07-30  6:49 ` Greg Ungerer
2008-07-30  7:07   ` Arnd Bergmann
2008-07-30  8:52     ` Sam Ravnborg
2008-07-30  8:38   ` Sam Ravnborg
2008-08-01  6:03     ` Greg Ungerer
2008-08-03 20:16       ` Geert Uytterhoeven
2008-08-04  0:34         ` Greg Ungerer
2008-08-04  5:10           ` Sam Ravnborg
2008-08-04 14:35         ` Arnd Bergmann
2008-08-04 16:00           ` Geert Uytterhoeven
2008-08-04 16:45             ` Sam Ravnborg
2008-07-30  9:34   ` David Howells
2008-07-30 12:26     ` Geert Uytterhoeven
2008-07-31  3:23       ` Paul Mundt
2008-07-31  7:17         ` Geert Uytterhoeven
2008-07-31 11:26           ` Greg Ungerer
2008-07-31 19:47         ` Arnd Bergmann
2008-07-31 20:13           ` Sam Ravnborg [this message]
2008-08-01  7:35             ` Arnd Bergmann
2008-08-01 16:46               ` Sam Ravnborg
2008-07-31 18:23 ` Ralf Baechle
2008-07-31 20:14   ` Sam Ravnborg
2008-08-09  2:52   ` Sam Ravnborg
2008-08-09  3:09     ` Paul Mundt
2008-08-09  7:03       ` Sam Ravnborg
2008-08-09  7:20         ` Russell King
2008-08-09 11:13           ` Sam Ravnborg
2008-08-01  8:35 ` Martin Schwidefsky
2008-08-01 16:49   ` Sam Ravnborg
2008-08-05  4:18 ` Rusty Russell
2008-08-05 17:16   ` Geert Uytterhoeven
2008-08-05 20:45   ` Sam Ravnborg
2008-08-05 22:06     ` Russell King
2008-08-06 19:21       ` Russell King
2008-08-06 19:28         ` Sam Ravnborg
2008-08-06 19:51           ` Russell King
2008-08-06 19:27       ` Sam Ravnborg
2008-08-09  7:28 ` Sam Ravnborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080731201352.GB25305@uranus.ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=arnd@arndb.de \
    --cc=dhowells@redhat.com \
    --cc=geert@linux-m68k.org \
    --cc=gerg@snapgear.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=uclinux-dev@uclinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®