Andrew Otwell wrote:
>
> source.c
> -------------------------
> #include <stdio.h>
> int main () {
> printf ("Hello world\n");
> }
> -------------------------
>
> A couple of you answered my first query which gave me....
>
> gcc -nostdinc -I/includedir -nostdlib -L/libdir source.c
>
> This always failed with either....
>
> ld: No reference to __DYNAMIC
> collect2: ld returned 1 exit status
>
> or
>
> /var/tmp/ccdgopIG.o: Undefined symbol `___main' referenced from text segment
> /var/tmp/ccdgopIG.o: Undefined symbol `_printf' referenced from text segment
> /var/tmp/ccdgopIG.o: Undefined symbol `_printf' referenced from text segment
> collect2: ld returned 1 exit status
>
> Depending on whether I specified lib names (ex. -lnet -lpcap -lgcc, etc....)
>
> I finally pulled all my hair out and ran
>
> gcc -nostdinc -I/usr/include -nostdlib -L/usr/lib source.c
> =-= and =-=
> gcc -nostdlib -L/usr/lib source.c
>
> and again I received.....
> /var/tmp/ccdgopIG.o: Undefined symbol `___main' referenced from text segment
> /var/tmp/ccdgopIG.o: Undefined symbol `_printf' referenced from text segment
> /var/tmp/ccdgopIG.o: Undefined symbol `_printf' referenced from text segment
> collect2: ld returned 1 exit status
>
> Can anyone assist with this?
> I need to be able to compile and link a "Hello World" program against a
> proprietary
> lib dir for my project but for starters I have to make sure my anomolies are not
> with the "ld" portion of my build.
>
> Why doesn't "gcc -nostdlib -L/usr/lib source.c" link properly? I even added
> all the .a files with -lnet -lpcap -ledit, so forth.... and it still failed.
Because you told it not to link with the standard libraries. You will have
to provide a library with a printf function, and a C runtime startup function
with at least the functionality of the standard FreeBSD one.
If you are trying to build a completely static image for an embedded system
or something like that, you might want to install a GCC cross-compiler and
binutils. See, for instance, in /usr/ports/devel:
*-rtems-binutils
*-rtems-gcc
etc.
--
"Where am I, and what am I doing in this handbasket?"
Wes Peters Softweyr LLC
[EMAIL PROTECTED] http://softweyr.com/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message