Patch v2. Powerpc does not include the top level linux.h, so I had to repeat the include order fixes from there in rs6000/sysv4.h.
I corrected the endianness handling (the "le" suffix should be added correctly now). gcc/Changelog: 2015-04-24 Gregor Richards <gregor.richa...@uwaterloo.ca> Szabolcs Nagy <szabolcs.n...@arm.com> * config.gcc (secure_plt): Add *-linux*-musl*. * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define. (MUSL_DYNAMIC_LINKER64): Define. (GNU_USER_DYNAMIC_LINKER32): Update. (GNU_USER_DYNAMIC_LINKER64): Update. (CHOOSE_DYNAMIC_LINKER): Update. * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define. * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update. (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,) (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,) (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,) (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define. (LINK_SECURE_PLT_DEFAULT_SPEC): Define. (CHOOSE_DYNAMIC_LINKER, LINK_TARGET_SPEC, LINK_OS_LINUX_SPEC): Update. * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define. This patch is generally okay, but why all of the secure PLT changes? /* Override the default target of the linker. */ #define LINK_TARGET_SPEC \ - ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") + ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \ + "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}" elf32-powerpcle is not defined and does not exist. The original change in sysv4.h seems to be an errant search-and-replace error. Thanks, David