Proposed change to arch/parisc/Makefile and generation of offset.h
I'd like to check this change in to change how we clean up and regenerate include/asm-parisc/offset.h. This will let us ship a working offset.h in our kernel-headers package to be used by glibc builds, and will also allow things like gdb to build.
(basically, the problem right now is that offset.h is removed after a 'make clean')
With this change, 'make dep' will regenerate the offset.h and allow the kernel dependency mechanism to kick in. 'make mrproper' will remove the offset.h file, but 'make clean' will not.
comments?
randolph
Index: arch/parisc/Makefile
===================================================================
RCS file: /var/cvs/linux/arch/parisc/Makefile,v
retrieving revision 1.28
parisc/Makefile +10 -3
@@ -32,6 +32,7 @@ CROSS_COMPILE := hppa-linux- endif endif +OFFSET_H := $(TOPDIR)/include/asm-parisc/offset.h FINAL_LD=$(CROSS_COMPILE)ld --warn-common --warn-section-align CPP=$(CC) -E
@@ -79,7 +80,7 @@ SUBDIRS := $(SUBDIRS) $(addprefix arch/p CORE_FILES := $(addprefix arch/parisc/, kernel/pdc_cons.o kernel/process.o \ lib/lib.a mm/mm.o kernel/kernel.o hpux/hpux.o) \ $(CORE_FILES) arch/parisc/kernel/init_task.o -CLEAN_FILES := $(CLEAN_FILES) arch/parisc/tools/offset.[hs] include/asm-parisc/offset.h* +CLEAN_FILES := $(CLEAN_FILES) arch/parisc/tools/offset.[hs] ifdef CONFIG_PARISC64 HEAD := arch/parisc/kernel/head64.o
@@ -122,8 +123,14 @@ compressed: zImage install: +archmrproper: + rm -f $(OFFSET_H) + archclean: -archmrproper: +archdep: $(OFFSET_H) + +$(OFFSET_H): include/linux/version.h + $(MAKE) -C $(TOPDIR)/arch/$(ARCH)/tools all -archdep: +.PHONY: archdep $(OFFSET_H)
Signature · 4 lines
@..@ http://www.TauSq.org/ (----) ( >__< ) ^^ ~~ ^^
Quoted 5 lines · Randolph Chung
I'd like to check this change in to change how we clean up and regenerate
include/asm-parisc/offset.h. This will let us ship a workingoffset.hin our kernel-headers package to be used by glibc builds, and will also allow things like gdb to build.
Quoted 8 lines
(basically, the problem right now is that
offset.his removed after a 'make clean')With this change, 'make dep' will regenerate the
offset.hand allow the kernel dependency mechanism to kick in. 'make mrproper' will remove theoffset.hfile, but 'make clean' will not.comments?
Sounds like a reasonable compromise to me. Only snag is that if you build a 32 bit kernel, make clean, change config for a 64 bit kernel, then make again, you will build a 64 bit kernel with the wrong offset.h.
Would be nice if 'make' could verify that the offset.h ifile was correct, without changing it (and so triggering dependencies). If it could do that, it could regenerate it only if it was wrong.
Richard
Quoted 7 lines
Sounds like a reasonable compromise to me. Only snag is that if you build a 32 bit kernel, make clean, change config for a 64 bit kernel, then make again, you will build a 64 bit kernel with the wrong
offset.h.Would be nice if 'make' could verify that the
offset.hifile was correct, without changing it (and so triggering dependencies). If it could do that, it could regenerate it only if it was wrong.
I think it's reasonable to expect people to manually do a full 'make dep' when switching. I'm not sure offset.h is the only thing that'll break if they don't.
With that said, sanity checking offset.h is never a bad thing. How about if I also add this so that the build will complain loudly if you used the wrong one?
Index: arch/parisc/tools/offset.c
===================================================================
RCS file: /var/cvs/linux/arch/parisc/tools/offset.c,v retrieving revision 1.16
parisc/tools/offset.c +9 -0
@@ -39,6 +39,15 @@ linefeed;text ("#ifndef _PARISC_OFFSET_H" );text ("#define _PARISC_OFFSET_H" ); linefeed; +#ifdef __LP64__ +text ("#ifndef __LP64__" ); +text ("#error offset.h was generated for 64-bit build; did you do 'make dep'?" ); +#else +text ("#ifdef __LP64__" ); +text ("#error offset.h was generated for 32-bit build; did you do 'make dep'?" ); +#endif +text ("#endif" ); +linefeed;void output_task_ptreg_defines (void ) {
randolph
Signature · 4 lines
@..@ http://www.TauSq.org/ (----) ( >__< ) ^^ ~~ ^^
Quoted 3 lines · Randolph Chung
With that said, sanity checking
offset.his never a bad thing. How about if I also add this so that the build will complain loudly if you used the wrong one?
Looks good to me.
Richard