Adam Jensen
2015-03-22 19:11:27 UTC
The GHDL build on FreeBSD is smooth enough but the ghdl executable has a problem. Has anyone seen anything like this before?
After compiling:
% ghdl -a foo.vhdl
% ghdl -e foo
/usr/local/bin/ld: foo: local symbol `environ' in /usr/lib/crt1.o is referenced by DSO
/usr/local/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
ghdl: compilation error
% ld --version
GNU ld (GNU Binutils) 2.25
% objdump -t /usr/lib/crt1.o
/usr/lib/crt1.o: file format elf32-i386-freebsd
SYMBOL TABLE:
00000000 l d .note.tag 00000000 .note.tag
00000000 l d .text 00000000 .text
00000000 l d .rodata.str1.1 00000000 .rodata.str1.1
00000000 l d .eh_frame 00000000 .eh_frame
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .comment 00000000 .comment
00000000 l d .note.GNU-stack 00000000 .note.GNU-stack
00000000 l df *ABS* 00000000 /usr/src/lib/csu/i386-elf/crt1_c.c
00000000 l O .note.tag 00000018 abitag
00000018 l O .note.tag 00000018 crt_noinit_tag
00000170 l F .text 0000003a finalizer
00000020 l F .text 00000142 .hidden _start1
00000000 w *UND* 00000000 _DYNAMIC
00000000 *UND* 00000000 .hidden __fini_array_end
00000000 *UND* 00000000 .hidden _init
00000004 O *COM* 00000004 environ
00000000 g O .data 00000004 __progname
00000000 g F .text 00000019 _start
00000000 *UND* 00000000 .hidden __fini_array_start
00000000 *UND* 00000000 main
00000000 *UND* 00000000 _init_tls
00000000 *UND* 00000000 .hidden __init_array_end
00000000 *UND* 00000000 .hidden _fini
00000000 *UND* 00000000 atexit
00000000 *UND* 00000000 .hidden __preinit_array_end
00000000 *UND* 00000000 exit
00000000 *UND* 00000000 .hidden __init_array_start
00000000 *UND* 00000000 .hidden __preinit_array_start
After compiling:
% ghdl -a foo.vhdl
% ghdl -e foo
/usr/local/bin/ld: foo: local symbol `environ' in /usr/lib/crt1.o is referenced by DSO
/usr/local/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
ghdl: compilation error
% ld --version
GNU ld (GNU Binutils) 2.25
% objdump -t /usr/lib/crt1.o
/usr/lib/crt1.o: file format elf32-i386-freebsd
SYMBOL TABLE:
00000000 l d .note.tag 00000000 .note.tag
00000000 l d .text 00000000 .text
00000000 l d .rodata.str1.1 00000000 .rodata.str1.1
00000000 l d .eh_frame 00000000 .eh_frame
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .comment 00000000 .comment
00000000 l d .note.GNU-stack 00000000 .note.GNU-stack
00000000 l df *ABS* 00000000 /usr/src/lib/csu/i386-elf/crt1_c.c
00000000 l O .note.tag 00000018 abitag
00000018 l O .note.tag 00000018 crt_noinit_tag
00000170 l F .text 0000003a finalizer
00000020 l F .text 00000142 .hidden _start1
00000000 w *UND* 00000000 _DYNAMIC
00000000 *UND* 00000000 .hidden __fini_array_end
00000000 *UND* 00000000 .hidden _init
00000004 O *COM* 00000004 environ
00000000 g O .data 00000004 __progname
00000000 g F .text 00000019 _start
00000000 *UND* 00000000 .hidden __fini_array_start
00000000 *UND* 00000000 main
00000000 *UND* 00000000 _init_tls
00000000 *UND* 00000000 .hidden __init_array_end
00000000 *UND* 00000000 .hidden _fini
00000000 *UND* 00000000 atexit
00000000 *UND* 00000000 .hidden __preinit_array_end
00000000 *UND* 00000000 exit
00000000 *UND* 00000000 .hidden __init_array_start
00000000 *UND* 00000000 .hidden __preinit_array_start