i fixed -liconv with /etc/portage/env. _strndup is apparently a harder nut to crack. make[2]: Entering directory `/Volumes/Data/tmp/portage/x11-misc/xdg-user-dirs-0.13/work/xdg-user-dirs-0.13' gcc -DHAVE_CONFIG_H -I. -I. -I. -DXDGCONFDIR=\"/opt/prefix/etc/xdg\" -DLOCALEDIR=\"/opt/prefix/usr/share/locale\" -DSTANDALONE_XDG_USER_DIR_LOOKUP -O2 -pipe -march=nocona -c xdg-user-dirs-update.c gcc -DHAVE_CONFIG_H -I. -I. -I. -DXDGCONFDIR=\"/opt/prefix/etc/xdg\" -DLOCALEDIR=\"/opt/prefix/usr/share/locale\" -DSTANDALONE_XDG_USER_DIR_LOOKUP -O2 -pipe -march=nocona -c xdg-user-dir-lookup.c xdg-user-dirs-update.c: In function ‘parse_colon_separated_dirs’: xdg-user-dirs-update.c:363: warning: incompatible implicit declaration of built-in function ‘strndup’ gcc -O2 -pipe -march=nocona -Wl,-dead_strip_dylibs -liconv -liconv -liconv -liconv -o xdg-user-dir-lookup xdg-user-dir-lookup.o gcc -O2 -pipe -march=nocona -Wl,-dead_strip_dylibs -liconv -liconv -liconv -liconv -o xdg-user-dirs-update xdg-user-dirs-update.o -lintl -Wl,-framework -Wl,CoreFoundation Undefined symbols: "_strndup", referenced from: _parse_colon_separated_dirs in xdg-user-dirs-update.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [xdg-user-dirs-update] Error 1 make[2]: Leaving directory `/Volumes/Data/tmp/portage/x11-misc/xdg-user-dirs-0.13/work/xdg-user-dirs-0.13' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/Volumes/Data/tmp/portage/x11-misc/xdg-user-dirs-0.13/work/xdg-user-dirs-0.13' make: *** [all] Error 2 emake failed * ERROR: x11-misc/xdg-user-dirs-0.13 failed (compile phase):
I added USE="nls" to control if xdg-user-dirs is pulled in when building Xfce, plus applied the patch that adds $(LIBICONV) for external libiconv to Portage from bug 499940 So that leaves _strndup problem But I think many systems should mostly just skip xdg-user-dirs and have it conditionalized by USE="nls"
I'm closing this because the package and OS changed considerably in the meantime.