linking problems while building dos->linux cross-compiler

linking problems while building dos->linux cross-compiler

Post by kishore ta » Fri, 01 Jul 2005 00:00:59


ontent-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

hi
i have been trying to build a dos->linux cross-compiler for the past few days. As a reference, i am following the article:

Linux x86 Host Cross Compiler HOWTO for the DJGPP Target Revised by Charles Wilkins Nov 14 2002
.....which is present in the how to repository of the djgpp homepage.

the files i am using are the following:

binutils-2.16.tar.gz, djcrx203.zip, gcc400s2.zip, gcc-4.00.tar.gz

i have been able to build the binutils, however, the gcc-build gets stuck at an 'undefined reference' to a function called "_fixpath()".
I came to know that _fixpath() is a library function of libc for djgpp. So I tried putting the library libc.a into some directiry and making a small change in the corresponding makefile (packages/cross/gnu/gcc-4.00-obj/gcc/Makefile) - the one which generates this error - so that it explicitly reads the libc.a in the gcc command. This can be seen below as the last argument of the gcc command. However, inspite of this i am getting the "undefined reference" error.



make[1]: Entering directory `/home/sriram/kishore/packages/cross/gnu/gcc-4.00-ob
j/gcc'
gcc -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototy
pes -Wmissing-prototypes -DHAVE_CONFIG_H -o cc1.exe \
c-parse.o c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c
-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-sem
antics.o c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o c-objc-co
mmon.o c-dump.o c-pch.o c-gimplify.o tree-mudflap.o c-pretty-print.o main.o li
bbackend.a ../libcpp/libcpp.a ../libcpp/libcpp.a ../libiberty/libiberty.a ../l
ibiberty/libc.a
prefix.o(.text+0x2f0): In function `update_path':
./../gcc-4.00/gcc/prefix.c:346: undefined reference to `_fixpath'
collect2: ld returned 1 exit status
make[1]: *** [cc1.exe] Error 1
make[1]: Leaving directory `/home/sriram/kishore/packages/cross/gnu/gcc-4.00-obj
/gcc'
make: *** [all-gcc] Error 2

Anyways, the makefile should be able to read the library even if i dont make the above modification in the makefile - as i have followed the above article step by step and the libc.a file is already in the directory where it is supposed to be, according to the tutorial.

Somebody please help fast as this is urgent.

Thanx for ur time
kishore


---------------------------------
Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy Football
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV>hi </DIV>
<DIV>i have been trying to build a dos->linux cross-compiler for the past few days. As a reference, i am following the article:</DIV>
<LI><A href="http://www.delorie.com/howto/djgpp/linux-x-djgpp-revised.html">Linux x86 Host Cross Compiler HOWTO for the DJGPP Target Revised</A> by <A href="mailto:2boxers AT comcast DOT net">Charles Wilkins</A> <SMALL><FONT size=2>Nov 14 2002</FONT></SMALL></LI>
<P>......which is present in the how to repository of the djgpp homepage.</P>
<P>the files i am using are the following:</P>
<P>binutils-2.16.tar.gz, djcrx203.zip, gcc400s2.zip, gcc-4.00.tar.gz</P>
<P> i have been able to build the binutils, however, the gcc-build gets stuck at an 'undefined reference' to a function called "
 
 
 

linking problems while building dos->linux cross-compiler

Post by Martin Str » Wed, 06 Jul 2005 03:02:38


You are aware of that that howto is about making a cross-compiler that
compiles to DJGPP, while you're trying to make a cross-compiler that
compiles in DOS to Linux?





Alas I'm not very experienced in making cross-compilers and I might be
totally wrong, but libc.a in libiberty/ is strange. Shouldn't it be in
target/lib or something.


Here are some suggestions that might help (or not):

You could try starting with the pristine .tar.gz gcc source.

You could try following another (not so DJGPP specific) HOWTO/FAQ for
cross-compilers.

You could try another gcc version.


Right,

MartinS

 
 
 

linking problems while building dos->linux cross-compiler

Post by kishore ta » Wed, 06 Jul 2005 14:00:12

ontent-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit


thank you martin, for your suggestion. yes, i am fully aware that the referred article is for linux->djgpp cross-compiler. What i was trying to do was to follow it and do the same for a djgpp->linux cross-compiler. I also referred to one ibm article on cross-compilers and feel the procedures to be quite similar. Upto what I have been able know, we can probably do it by specifying the target and the host system while running the configure script, which then generates the required makefiles.

As for the libc.a, actually yes, it is strange......because it was put by me in libiberty to ensure that it is read by the linker as it was unable to find a reference to _fixpath(). And I am using the .tar.gz gcc source from the gnu site only.

kishore

Martin Str|mberg < XXXX@XXXXX.COM > wrote:
kishore taid wrote:


You are aware of that that howto is about making a cross-compiler that
compiles to DJGPP, while you're trying to make a cross-compiler that
compiles in DOS to Linux?





Alas I'm not very experienced in making cross-compilers and I might be
totally wrong, but libc.a in libiberty/ is strange. Shouldn't it be in
target/lib or something.


Here are some suggestions that might help (or not):

You could try starting with the pristine .tar.gz gcc source.

You could try following another (not so DJGPP specific) HOWTO/FAQ for
cross-compilers.

You could try another gcc version.


Right,

MartinS


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV> </DIV>
<DIV>thank you martin, for your suggestion. yes, i am fully aware that the referred article is for linux->djgpp cross-compiler. What i was trying to do was to follow it and do the same for a djgpp->linux cross-compiler. I also referred to one ibm article on cross-compilers and feel the procedures to be quite similar. Upto what I have been able know, we can probably do it by specifying the target and the host system while running the configure script, which then generates the required makefiles.<BR></DIV>
<DIV>As for the libc.a, actually yes, it is strange......because it was put by me in libiberty to ensure that it is read by the linker as it was unable to find a reference to _fixpath(). And I am using the .tar.gz gcc source from the gnu site only.</DIV>
<DIV> </DIV>
<DIV>kishore</DIV>
<DIV> </DIV>
<DIV><B><I>Martin Str|mberg < XXXX@XXXXX.COM ></I></B> wrote:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">kishore taid < XXXX@XXXXX.COM >wrote:<BR>> i have been trying to build a dos->linux cross-compiler for the past few days. As a reference, i am following the article:<BR><BR>> Linux x86 Host Cross Compiler HOWTO for the DJGPP Target Revised by<BR>> Charles Wilkins Nov 14 2002 <BR>> .....which is present in the how to repository of the djgpp homepage.<BR><BR>You are aware of that that howto is about making a cross-compiler that<BR>compiles to DJGPP, while you're trying to
 
 
 

linking problems while building dos->linux cross-compiler

Post by CBFalcone » Wed, 06 Jul 2005 20:10:24


I trust you realize that many, including myself, will never open
(nor reply to) a message using html or mime. They are security
risks. If you want to be read, use pure text.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson