1 diff --git a/bfd/config.bfd b/bfd/config.bfd
5 targ_defvec=bfd_elf32_littlearm_vec
6 targ_selvecs=bfd_elf32_bigarm_vec
8 - armeb-*-elf | arm*b-*-linux-gnu*)
9 + armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-musl*)
10 targ_defvec=bfd_elf32_bigarm_vec
11 targ_selvecs=bfd_elf32_littlearm_vec
14 targ_defvec=bfd_elf32_littlearm_vec
15 targ_selvecs=bfd_elf32_bigarm_vec
17 - arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
18 + arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-musl* | arm*-*-conix* | \
19 arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
21 targ_defvec=bfd_elf32_littlearm_vec
23 targ_selvecs=bfd_elf32_i386_vec
26 - i[3-7]86-*-linux-gnu*)
27 + i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-musl*)
28 targ_defvec=bfd_elf32_i386_vec
29 targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
30 targ64_selvecs=bfd_elf64_x86_64_vec
32 targ_defvec=bfd_elf64_x86_64_vec
33 targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
35 - x86_64-*-linux-gnu*)
36 + x86_64-*-linux-gnu* | x86_64-*-linux-musl*)
37 targ_defvec=bfd_elf64_x86_64_vec
38 targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
40 diff --git a/config.sub b/config.sub
44 # Here we must recognize all the valid KERNEL-OS combinations.
45 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
47 - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
48 + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | linux-musl* | uclinux-uclibc* | uclinux-gnu* | \
49 kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
51 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
53 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
54 | -chorusos* | -chorusrdb* \
55 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
56 - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
57 + | -mingw32* | -linux-gnu* | -linux-uclibc* | -linux-musl* | -uxpv* | -beos* | -mpeix* | -udk* \
58 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
59 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
60 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
61 diff --git a/gas/configure.tgt b/gas/configure.tgt
62 --- a/gas/configure.tgt
63 +++ b/gas/configure.tgt
65 arm-*-kaos*) fmt=elf ;;
66 arm-*-conix*) fmt=elf ;;
67 arm-*-linux*aout*) fmt=aout em=linux ;;
68 - arm-*-linux-gnueabi*) fmt=elf em=armlinuxeabi ;;
69 - arm-*-linux-gnu*) fmt=elf em=linux ;;
70 + arm-*-linux-gnueabi* | arm-*-linux-musleabi*) fmt=elf em=armlinuxeabi ;;
71 + arm-*-linux-gnu* | arm-*-linux-musl*) fmt=elf em=linux ;;
72 arm-*-uclinux*) fmt=elf em=linux ;;
73 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
74 arm-*-*n*bsd*) fmt=aout em=nbsd ;;
76 i386-*-linux*aout*) fmt=aout em=linux ;;
77 i386-*-linux*oldld) fmt=aout em=linux ;;
78 i386-*-linux*coff*) fmt=coff em=linux ;;
79 - i386-*-linux-gnu*) fmt=elf em=linux ;;
80 + i386-*-linux-gnu* | i386-*-linux-musl*) fmt=elf em=linux ;;
81 i386-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;;
82 i386-*-sysv[45]*) fmt=elf ;;
83 i386-*-solaris*) fmt=elf ;;
84 diff --git a/ld/configure.tgt b/ld/configure.tgt
85 --- a/ld/configure.tgt
86 +++ b/ld/configure.tgt
88 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
90 i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
91 -i[3-7]86-*-linux-gnu*) targ_emul=elf_i386
92 +i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-musl*) targ_emul=elf_i386
93 targ_extra_emuls=i386linux
94 if test x${want64} = xtrue; then
95 targ_extra_emuls="$targ_extra_emuls elf_x86_64"
97 tdir_i386linux=${targ_alias}aout
99 -x86_64-*-linux-gnu*) targ_emul=elf_x86_64
100 +x86_64-*-linux-gnu* | x86_64-*-linux-musl*) targ_emul=elf_x86_64
101 targ_extra_emuls="elf_i386 i386linux"
102 targ_extra_libpath=elf_i386
103 tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
104 @@ -261,10 +261,10 @@
105 arm*-*-symbianelf*) targ_emul=armsymbian;;
106 arm-*-kaos*) targ_emul=armelf ;;
107 arm9e-*-elf) targ_emul=armelf ;;
108 -arm*b-*-linux-gnueabi) targ_emul=armelfb_linux_eabi ;;
109 -arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
110 -arm*-*-linux-gnueabi) targ_emul=armelf_linux_eabi ;;
111 -arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
112 +arm*b-*-linux-gnueabi | arm*b-*-linux-musleabi) targ_emul=armelfb_linux_eabi ;;
113 +arm*b-*-linux-gnu* | arm*b-*-linux-musl*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
114 +arm*-*-linux-gnueabi | arm*-*-linux-musleabi) targ_emul=armelf_linux_eabi ;;
115 +arm*-*-linux-gnu* | arm*-*-linux-musl*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
116 arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
117 arm-*-vxworks) targ_emul=armelf_vxworks ;;
118 arm*-*-conix*) targ_emul=armelf ;;