Reputation: 2532
I detect this using strace:
8480 execve("/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld",
[ "/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld",
...
"-L/home/bjack/lib",
...
"-rpath-link", "/root/src/firmware/Bj-bg/ab-BJ-gameprom-modules/src/dispatcher/logic",
...
"-lgame_std", "-lygor", "-ldl",
"--rpath", "/home/bjack/lib",
"-lgcc", "--as-needed", "-lgcc_s", "--no-as-needed", "-lc", "-lgcc", "--as-needed", "-lgcc_s", "--no-as-needed",
"/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/crtend.o",
"/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crtn.o"
], [/* 26 vars */]) = 0
8480 open("/home/bjack/lib/libgame_std.so", O_RDONLY) = 12
8480 open("/home/bjack/lib/libygor.so", O_RDONLY) = -1 ENOENT (No such file or directory)
8480 open("/home/bjack/lib/libygor.a", O_RDONLY) = -1 ENOENT (No such file or directory)
I'm confused; according to the manual ld at first must try to find at -rpath-link
path.
Upvotes: 3
Views: 4734
Reputation: 364160
-rpath-link
is only documented (in the ld(1) man page) to affect shared libs that depend on other shared libs. Since you're linking an executable, either it's ignored or it's treated like just another -rpath. Or maybe it means that the -rpath-link path is only used for recursive dependencies, but you do set it when linking the executable.
Anyway, I think it's not being used because you don't have one library depending on another.
Upvotes: 3