Harald van Dijk wrote: > On Sun, Nov 05, 2006 at 06:47:07PM +0300, Peter Volkov (pva) wrote: >> Hello. >> >> Short question: What shall we use to link libraries/programs: gcc or ld? >> Why? >> >> A bit longer story: I have a problem during linking of wepattack on >> amd64 systems. Linking stage issues warning: >> >> $ x86_64-pc-linux-gnu-ld -o wepattack wepattack.o rc4.o wepfilter.o >> log.o modes.o misc.o verify.o keygen.o -lpcap -lz -lcrypto >> ld: warning: cannot find entry symbol _start; defaulting to >> 0000000000400e10 >> >> And resulted file is not executable. In google I found the most of >> tutorials/howtos suggest to link with gcc but some programs still use >> LD. From ld man page it's clear that it should link the program but this >> is not working. So what is the right way to do that? Why? > > Link using gcc unless your program is a very special case. _start is defined > in /usr/lib/crt1.o (may be slightly different on amd64), and that as well as > other object files typically required by every program will be pulled in by > gcc.
Doing some reading up on the list... thus the late answer. gnu make provides you with the variables/macros that is usable for linking. Look for 'LINK.c' etc in the output of 'make -p -f/dev/null'. It might be wise to use them instead of the actual linker since you might wanna port your project to some other compiler etc in the future. /Andreas -- gentoo-dev@gentoo.org mailing list