On 2014-06-06 04:04, Fam Zheng wrote: >> Ugh. This was supposed to be fixed by commit 6295b98d7b767c. >> Fam, can you re-check your fix, please? >> > > I don't understand that fix now, looks like it was moved onto a wrong list. > > Rainer, does this below patch work for you? (we can't duplicate object, so > sort > is required there).
No, unfortunately this does not work. With this patch, I end up with: $ make V=1 qemu-img ... ... qemu-img.o qemu-io-cmds.o qemu-timer.o thread-pool.o libqemuutil.a libqemustub.a -lz -L/opt/local/lib -lcurl -L/opt/local/lib -lssh2 -Wl,-headerpad_max_install_names -arch x86_64 -L/opt/local/lib -Wl,-headerpad_max_install_names -arch -lcurl -lssh2 -lz x86_64 -L/opt/local/lib -lgthread-2.0 -lglib-2.0 -lintl -lz -lz clang: error: no such file or directory: 'x86_64' clang: error: invalid arch name '-arch -lcurl' make: *** [qemu-img] Error 1 You really can't just sort the words as their order is important, at least for some options such as "-arch" and its argument. >From config-host.mak: LIBSSH2_LIBS=-L/opt/local/lib -lssh2 -Wl,-headerpad_max_install_names -arch x86_64 I don't understand the make function $(extract-libs) here. First the contents of $o-libs is added as-is, but then it is added again filtered through $(expand-objs). What is the purpose of adding it twice? Regarding your proposed patch, it doesn't matter whether you sort the first list or the second list. Both lists include the problematic "-arch x86_64" linker option. Rainer