Well I've tryied to make dev/bios with the old makefile and it works perfectly and i know why.
The version i got unstable200404xx handle 2.6kernel policy change on modules or something like that
But I still don't understand these part of your code:
ifeq ($(KERNEL)/.config,$(wildcard $(KERNEL)/.config)) include $(KERNEL)/.config endif # see if we need module versions ifdef CONFIG_MODVERSIONS CFLAGS += -DMODVERSIONS endif
In the 0.3.2 version in never hear about the need to include the kernel .config.
When i say to managed to make it works that true, but it's tainted and this is an ugly "bricologe"
Please I really need somebody to get me out of this .
mathieu
Le ven 23/04/2004 à 15:29, Mathieu Deschamps a écrit :
ok , I try a recent unstable version via openbios/snapshot/ and just typed make without changing anything, it's seems a .config file has not been built or a file misses in the tar into forth directory.
It's a new source tree organisation :) with a beautifull ncurse config menu.
======================= checking whether ln -s works... yes checking for gcc... /usr/bin/gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /usr/bin/gcc accepts -g... yes checking for /usr/bin/gcc option to accept ANSI C... none needed checking how to run the C preprocessor... /usr/bin/gcc -E checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whetherbut I can't find my herd back ! Please... g++ accepts -g... yes checking for m4... m4 checking for as... as checking for strip... strip checking for ld... ld checking for nm... nm checking for install... install checking dependency style... new configure: creating ./config.status config.status: creating Makefile.defs config.status: creating mconfig.h
- Entering lxdialog Compiling checklist.o : ok Compiling menubox.o : ok Compiling textbox.o : ok Compiling yesno.o : ok Compiling inputbox.o : ok Compiling util.o : ok Compiling lxdialog.o : ok Compiling msgbox.o : ok
= Building lxdialog : ok
- Entering kconfig Compiling zconf-y.o : ok Compiling mconf.o : ok
= Building mconfig : ok Compiling conf.o : ok = Building config : ok
# End of OpenBIOS configuration. # The next step is probably 'make'.
config.status: creating Makefile.defs config.status: creating mconfig.h config.status: mconfig.h is unchanged = Building openbios-1.0.RC1 [avr 23 2004 15:03]
- Entering libc Compiling ctype.o : ok Compiling extra.o : ok Compiling misc.o : ok Compiling string.o : ok Compiling vsprintf.o : ok Compiling diskio.o : ok Compiling byteorder.o : ok
- Entering kernel Compiling dict.o : ok Compiling primitives.o : okmake -f Makefile.24
gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 bios_core.c -o bios_core.o gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 flashchips.c -o flashchips.o gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 pcisets.c -o pcisets.o pcisets.c:234: warning: `gporeg_save' defined but not used gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 filesystem.c -o filesystem.o filesystem.c:292: `THIS_MODULE' undeclared here (not in a function) filesystem.c:292: initializer element is not constant filesystem.c:292: (near initialization for `bios_fops.owner') make: *** [filesystem.o] Error 1
Compiling stack.o : ok Compiling bootstrap.o : ok
= Building forthc : ok
- Entering toke Compiling toke.o : ok Compiling emit.o : ok Compiling dictionary.o : ok Compiling stack.o : ok Compiling stream.o : ok Compiling macros.o : ok Compiling scanner.o : ok
= Building toke : ok
- Entering forth
make[2]: *** No rule to make target `../.config', needed by `../obj-x86/build/forth/lib.dict'. Stop. make[1]: *** [sub-forth-all] Error 2 make: *** [auto-bootstrap] Error 2
If i try to make devbios in devbios i have a
[unstable/dev/bios]make
make -C /usr/src/linux SUBDIRS=`pwd` modules make[1]: Entering directory `/usr/src/linux-2.4.20' make -C /home/root/projet/src/unstable/utils/devbios CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486 -malign-functions=0 -malign-jumps=0 -malign-loops=0 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.20/include/linux/modversions.h" MAKING_MODULES=1 modules make[2]: Entering directory `/home/root/projet-20042004/src/unstable/utils/devbios' make[2]: *** No rule to make target `modules'. Stop. make[2]: Leaving directory `/home/root/projet-20042004/src/unstable/utils/devbios' make[1]: *** [_mod_/home/root/projet/src/unstable/utils/devbios] Error 2 make[1]: Leaving directory `/usr/src/linux-2.4.20' make: *** [module] Error 2
I also try :wq
make -f Makefile.24 gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 bios_core.c -o bios_core.o gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 flashchips.c -o flashchips.o gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 pcisets.c -o pcisets.o pcisets.c:234: warning: `gporeg_save' defined but not used gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-common -fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 filesystem.c -o filesystem.o filesystem.c:292: `THIS_MODULE' undeclared here (not in a function) filesystem.c:292: initializer element is not constant filesystem.c:292: (near initialization for `bios_fops.owner') make: *** [filesystem.o] Error 1
What's wrong ? I have lost myself in this new dist.
mathieu
* Mathieu Deschamps mdeschamps@mangrove-systems.com [040423 18:07]:
But I still don't understand these part of your code:
ifeq ($(KERNEL)/.config,$(wildcard $(KERNEL)/.config)) include $(KERNEL)/.config endif # see if we need module versions ifdef CONFIG_MODVERSIONS CFLAGS += -DMODVERSIONS endif
This is needed for those using module versioning.
In the 0.3.2 version in never hear about the need to include the kernel .config.
Yes. 0.3.2 is broken wrt module versioning
When i say to managed to make it works that true, but it's tainted and this is an ugly "bricologe"
taintet?
Stefan
ok I've found why it does this :
make -f Makefile.24 gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-common
-fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 bios_core.c -o bios_core.o gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-common
-fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 flashchips.c -o
flashchips.o
gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-common
-fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 pcisets.c -o pcisets.o pcisets.c:234: warning: `gporeg_save' defined but not used gcc -c -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-common
-fno-strict-aliasing -pipe -DMODULE -DDEBUG -DMODVERSIONS -mpreferred-stack-boundary=2 -march=i586 filesystem.c -o
filesystem.o
filesystem.c:292: `THIS_MODULE' undeclared here (not in a function) filesystem.c:292: initializer element is not constant filesystem.c:292: (near initialization for `bios_fops.owner') make: *** [filesystem.o] Error 1
It's because the $KERNEL is /usr/src/linux then gcc's -I is $KERNEL/include. It lacks module.h, because on my distro (RH9) module.h is in $KERNEL/include/linux/. It needs a Makefile.24 little update :)
error was mentioning THIS_MODULE,module.h is the file that's containing #define THIS_MODULE (&__this_module)
At the end it can be insmod anyway because of unresolved syms, it done for 2.6 kernel, well i knew what i was risking.
Where could i find the 02/06/10 or the 02/04/12 version of devbios still based upon kernel 2.4 building ?
Le lun 26/04/2004 à 12:07, Stefan Reinauer a écrit :
- Mathieu Deschamps mdeschamps@mangrove-systems.com [040423 18:07]:
But I still don't understand these part of your code:
ifeq ($(KERNEL)/.config,$(wildcard $(KERNEL)/.config)) include $(KERNEL)/.config endif # see if we need module versions ifdef CONFIG_MODVERSIONS CFLAGS += -DMODVERSIONS endif
This is needed for those using module versioning.
In the 0.3.2 version in never hear about the need to include the kernel .config.
Yes. 0.3.2 is broken wrt module versioning
When i say to managed to make it works that true, but it's tainted and this is an ugly "bricologe"
taintet?
It's a module state, fo example when you force loading of a module hasn't been compiled for the machine you are trying to insmoding. It seems it's also some kind of internal authenficate signature.
Stefan