This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
.div is in gcc/config/sparc/lb1spc.asm in the gcc sources. I'm guessing no one's tried running linux on an old v7 machine because the linux configurations don't include lb1spc.asm in libgcc.a. [not surprising] If you configure for sparc-elf then you'll get a libgcc.a that has .div. There's a few other configurations that will get you .div, but sparc-elf is, I think, the canonical one for doing embedded sparc programs with elf. Nick Patavalis writes: > I'm compiling the following program using GCC-3.2.3 configured as a > cross-compiler targeting "sparc-linux" and hosted on ix86-linux. > > int main (void) { int i; i = i / 3; return 0; } > > My target system uses a sparc-v7 compliant processor without integet > multiplication and division instructions, so I'm compiling with: > > sparc-linux-gcc -mcpu=v7 -fno-builtin -c tst.c -o tst.o > > but when I try to link the generated object, like this: > > sparc-linux-ld tst.o /path/to/gcc-lib/3.2.3/libgcc.a -o tst > > I get an error about the linker not been able to find the ".div" > function. I was under the impression that the integer-math functions > called by code generated from C integer expressions were implemented > in "libgcc.a". Obviously they are not! > > Looking arround I found a ".div" function in *libc*, but for several > reasons, I don't want to link my program with the glibc "monster". All > I want is a library that supports the *compiler generated* function > references. Isn't "libgcc" supposed to be exactly that??? > > I finaly managed to get my program (performing integer math) link, > using this round-about way: > > mkdir libintm; cd libintm > ar x /path/to/glibc/libc.a \ > addmul_1.o sub_n.o submul_1.o dotmul.o \ > mul.o mul_1.o mul_n.o umul.o \ > div.o udiv.o udiv_qrnnd.o sdiv.o ldiv.o lldiv.o \ > divmod_1.o divrem.o rem.o urem.o > ar cr libintm.a *.o > ranlib libintm.a > > and then link my program with "-lintm". > > Are the above-mentioned functions *exactly* the ones required? That > is, does the compiler implicitly produce refences *only* to these > functions, and to *all* of these? Is there a nicer way to achieve the > same result? > > /npat > > P.S. Obviously my intention is to compile a program that will run at > "boot"-time without the services of an operation system, or of an > extensive standard library. ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |