gold is segfaulting on ARM using following set up foo.S _start: foo.ld SECTIONS { .stack (NOLOAD) : { . = ALIGN(8); } } $ ./gas/as-new -o foo.o foo.S $ ./gold/ld-new -T foo.ld foo.o ./gold/ld-new: internal error in set_address, at /home/kraj/work/binutils/gold/output.h:189 I first saw it on 2.22 branch and it is triggered after this commit commit 624da0376264205e399bc14fe2fa7b6fa659d0ee Author: Ian Lance Taylor <ian@airs.com> Date: Mon Dec 19 21:14:39 2011 +0000 Copy from mainline to binutils 2.22 branch: This also happens on trunk ./gold/ld-new --version GNU gold (GNU Binutils 2.23.51.20120917) 1.11 Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.
I just tripped over this bug, which is still still present in binutils-2.24. I'm using it on a bare-metal arm toolchain (built with crosstool-ng). ld.bfd works fine.