In message <85E6ED5B5EC32F439702305CC417E12D9E2A7D at email.3il.fr> you wrote: > > --> I've included in this file: > #include <linux/config.h> > #include <asm/processor.h> > #include <asm/cache.h> > #include <asm-ppc/ppc_asm.h> > #include "ppcbslit.h" > > [ppcbslit.h is a file which is supposed to contain a lot of > #define > that I need in many files of my project. At the beggining of > this > file, I have included: > #include <stdio.h> > #include <string.h> > #include <sys/types.h> > #include <sys/stat.h> > #include <fcntl.h> > #include <sys/ioctl.h> > #include <unistd.h> > #include <linux/ctype.h> ]
You should NOT include standard C header files in a assembler program! assembler != C > Results: > ======== > --> I don't know why but the #include of my assembler file are now > considered (a compilation option maybe... -x assembler??) This is because your file now has a ".S" suffix instead of ".s" as before. Read the GCC manual about details! > --> But now there is the following problem ; I got hundreds of > errors. > I report below a little part of them: > /opt/hardhat/devkit/ppc/405/target/usr/include/stdio.h: Assembler > messages: > /opt/hardhat/devkit/ppc/405/target/usr/include/stdio.h:30: Error: > Unrecognized opcode: `__begin_decls' > /home/jgarcia/Desktop/kernel/ssc/StdLib/local/stddef.h:201: Error: > Unrecognized opcode: `typedef' > /opt/hardhat/devkit/ppc/405/target/usr/include/bits/stat.h:38: Error: > Unrecognized opcode: `__dev_t' > /home/jgarcia/Desktop/kernel/ssc/basic/services/include/ppcbslit.h:164: > Error: Unrecognized opcode: `int' > /opt/hardhat/devkit/ppc/405/target/usr/include/unistd.h:688: Error: > Unrecognized opcode: `extern' This is because you include C header files in assember code. You must not do that. > --> I found a way to prevent those errors... I put all my #define that > I need in my assembler file. But you'll understand that it's a very > restrictive way of programming and I'd like to find a better solution > cause I'm talkin' about a hundred of #define...so... If you have the C includes in one of your private header files, you can put a "#ifndef __ASSEMBLY__" / "#endif" around them. Otherwise just clean up your code and don't use C headers in your assembler file. Best regards, Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd at denx.de Landing: a controlled mid-air collision with a planet. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/