Jon Grant <j...@jguk.org> writes: > Any easy way to evaluate and reduce command lines? Consider this: > > /usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/crt1.o > > Is actually the same as: /usr/lib/crt1.o -- which is much clearer!
Using this form of path makes it easy to move an installed gcc tree to a new location and have it continue to work correctly. Since normal users never see these paths, the goal is correctness rather than clarity. > Also I notice lots of duplicate parameters: > > Is this directory really needed twice? > -L/usr/lib/gcc/i486-linux-gnu/4.3.3 -L/usr/lib/gcc/i486-linux-gnu/4.3.3 No. I would encourage you to investigate why it is happening. > also -lgcc_s is mentioned twice, as is -gcc This is because on some systems there is a circular dependency between -lgcc and -lc. Some of the functions in -lgcc require functions in -lc. If -lc was compiled with gcc, then on some systems some of the functions in -lc will require -lgcc. Fortunately the functions which -lc requires in -lgcc will never themselves require -lc. So mentioning -lgcc twice, once before -lc and once after, suffices on all systems. > Finally, could collect2 output command lines when in -verbose mode? > Currently I can't see what parameters it is calling "ld" with.. when > ld fails. To see what collect2 is doing, use -Wl,-debug. Ian