Subject: toolchain/19265: Recent toolchain changes break "grub" package
To: None <gnats-bugs@gnats.netbsd.org>
From: Matthias Scheler <tron@colwyn.zhadum.de>
List: netbsd-bugs
Date: 12/04/2002 15:56:31
>Number:         19265
>Category:       toolchain
>Synopsis:       Recent toolchain changes break "grub" package
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 04 06:57:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.6K (2002-12-03 sources)
>Organization:
Matthias Scheler                                  http://scheler.de/~matthias/
>Environment:
System: NetBSD lyssa.zhadum.de 1.6K NetBSD 1.6K (LYSSA) #0: Wed Dec 4 15:37:37 CET 2002 tron@lyssa.zhadum.de:/src/sys/compile/LYSSA i386
Architecture: i386
Machine: i386
>Description:
The recent changes to NetBSD's toolchain break building the "grub" package:

cc  -O2 -I/usr/pkg/include  -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -o pre_stage2.exec -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 pre_stage2_exec-asm.o pre_stage2_exec-bios.o pre_stage2_exec-boot.o pre_stage2_exec-builtins.o pre_stage2_exec-common.o pre_stage2_exec-char_io.o pre_stage2_exec-cmdline.o pre_stage2_exec-disk_io.o pre_stage2_exec-gunzip.o pre_stage2_exec-fsys_ext2fs.o pre_stage2_exec-fsys_fat.o pre_stage2_exec-fsys_ffs.o pre_stage2_exec-fsys_jfs.o pre_stage2_exec-fsys_minix.o pre_stage2_exec-fsys_reiserfs.o pre_stage2_exec-fsys_vstafs.o pre_stage2_exec-fsys_xfs.o pre_stage2_exec-hercules.o pre_stage2_exec-serial.o pre_stage2_exec-smp-imps.o pre_stage2_exec-stage2.o pre_stage2_exec-md5.o ../netboot/libdrivers.a 
pre_stage2_exec-builtins.o: In function `blocklist_func':
pre_stage2_exec-builtins.o(.text+0x220): undefined reference to `__enable_execute_stack'
pre_stage2_exec-builtins.o: In function `install_func':
pre_stage2_exec-builtins.o(.text+0x16cf): undefined reference to `__enable_execute_stack'
pre_stage2_exec-builtins.o(.text+0x16f2): undefined reference to `__enable_execute_stack'
gmake[2]: *** [pre_stage2.exec] Error 1
gmake[2]: Leaving directory `/src/NetBSD-current/pkgsrc/sysutils/grub/work/grub-0.92/stage2'

The reason is that NetBSD's compiler now emits calls to __enable_execute_stack
for nested C functions(*) which breaks standalone programs.

(*) one of the great extensions to the C language in GCC

>How-To-Repeat:
cd pkgsrc/sysutils/grub
make

>Fix:
Not known.

>Release-Note:
>Audit-Trail:
>Unformatted: