DragonFly_RELEASE_1_2 buildworld failed with fstack protector

Jurij Kovacic jurij.kovacic at gmail.com
Sun Apr 10 09:24:00 PDT 2005


Hello!

I just tried to "make build world" with

CFLAGS=-O -pipe -fstack-protector
COPTFLAGS=-O -pipe -fstack-protector
on Dragonfly_RELEASE_1_2 (GCC3)which failed with:

boot.o: In function `getrootmount':
boot.o(.text+0x43c): undefined reference to `__guard'
boot.o(.text+0x63c): undefined reference to `__guard'
boot.o(.text+0x64c): undefined reference to `__stack_smash_handler'
commands.o: In function `help_getnext':
commands.o(.text+0x13): undefined reference to `__guard'
commands.o(.text+0x132): undefined reference to `__guard'
commands.o(.text+0x142): undefined reference to `__stack_smash_handler'
commands.o: In function `command_help':
commands.o(.text+0x1e9): undefined reference to `__guard'
commands.o(.text+0x3fe): undefined reference to `__guard'
commands.o(.text+0x40e): undefined reference to `__stack_smash_handler'
commands.o: In function `command_read':
commands.o(.text+0x647): undefined reference to `__guard'
commands.o(.text+0x785): undefined reference to `__guard'
commands.o(.text+0x795): undefined reference to `__stack_smash_handler'
commands.o: In function `command_more':
commands.o(.text+0x7b9): undefined reference to `__guard'
commands.o(.text+0x83e): undefined reference to `__guard'
commands.o(.text+0x84e): undefined reference to `__stack_smash_handler'
commands.o: In function `command_lsdev':
commands.o(.text+0x8a4): undefined reference to `__guard'
commands.o(.text+0x97f): undefined reference to `__guard'
commands.o(.text+0x98f): undefined reference to `__stack_smash_handler'
interp.o: In function `interact':
interp.o(.text+0xb): undefined reference to `__guard'
interp.o: In function `include':
interp.o(.text+0x169): undefined reference to `__guard'
interp.o(.text+0x2d8): undefined reference to `__guard'
interp.o(.text+0x2e8): undefined reference to `__stack_smash_handler'
ls.o: In function `command_ls':
ls.o(.text+0x13): undefined reference to `__guard'
ls.o(.text+0x26b): undefined reference to `__guard'
ls.o(.text+0x27b): undefined reference to `__stack_smash_handler'
misc.o: In function `hexdump':
misc.o(.text+0x109): undefined reference to `__guard'
misc.o(.text+0x238): undefined reference to `__guard'
misc.o(.text+0x248): undefined reference to `__stack_smash_handler'
module.o: In function `command_lsmod':
module.o(.text+0x1a4): undefined reference to `__guard'
module.o(.text+0x2e9): undefined reference to `__guard'
module.o(.text+0x2f9): undefined reference to `__stack_smash_handler'
isapnp.o: In function `isapnp_scan_resdata':
isapnp.o(.text+0x259): undefined reference to `__guard'
isapnp.o(.text+0x381): undefined reference to `__guard'
isapnp.o(.text+0x391): undefined reference to `__stack_smash_handler'
isapnp.o: In function `isapnp_isolation_protocol':
isapnp.o(.text+0x3b6): undefined reference to `__guard'
isapnp.o(.text+0x4a2): undefined reference to `__guard'
isapnp.o(.text+0x4b2): undefined reference to `__stack_smash_handler'
pnp.o: In function `pnp_eisaformat':
pnp.o(.text+0x289): undefined reference to `__guard'
pnp.o(.text+0x32c): undefined reference to `__guard'
pnp.o(.text+0x33c): undefined reference to `__stack_smash_handler'
interp_forth.o: In function `bf_init':
interp_forth.o(.text+0x231): undefined reference to `__guard'
interp_forth.o(.text+0x379): undefined reference to `__guard'
interp_forth.o(.text+0x389): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../../ficl/libficl.a(loader.o): 
In function `ficlExecFD':
loader.o(.text+0x49c): undefined reference to `__guard'
loader.o(.text+0x56a): undefined reference to `__guard'
loader.o(.text+0x57a): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../../ficl/libficl.a(words.o): 
In function `twoConstParen':
words.o(.text+0x93d): undefined reference to `__guard'
words.o(.text+0xb76): undefined reference to `__guard'
words.o(.text+0xb86): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../../ficl/libficl.a(words.o): 
In function `ficlTick':
words.o(.text+0x3abe): undefined reference to `__guard'
words.o(.text+0x3c74): undefined reference to `__guard'
words.o(.text+0x3c84): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(vidconsole.o): 
In function `bail_out':
vidconsole.o(.text+0x516): undefined reference to `__guard'
vidconsole.o(.text+0x5a1): undefined reference to `__guard'
vidconsole.o(.text+0x5b1): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(pxe.o): 
In function `pxe_enable':
pxe.o(.text+0x220): undefined reference to `__guard'
pxe.o(.text+0x468): undefined reference to `__guard'
pxe.o(.text+0x478): undefined reference to `__stack_smash_handler'
pxe.o(.text+0x59e): undefined reference to `__guard'
pxe.o(.text+0x5f0): undefined reference to `__guard'
pxe.o(.text+0x600): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(biospci.o)(.text+0x1a3): 
undefined reference to `__guard'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(biospci.o)(.text+0x23b): 
undefined reference to `__guard'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(biospci.o)(.text+0x24b): 
undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(biosdisk.o): 
In function `bd_unit2bios':
biosdisk.o(.text+0x202): undefined reference to `__guard'
biosdisk.o(.text+0x34f): undefined reference to `__guard'
biosdisk.o(.text+0x35f): undefined reference to `__stack_smash_handler'
biosdisk.o(.text+0x386): undefined reference to `__guard'
biosdisk.o(.text+0x53d): undefined reference to `__guard'
biosdisk.o(.text+0x54d): undefined reference to `__stack_smash_handler'
biosdisk.o(.text+0x572): undefined reference to `__guard'
biosdisk.o(.text+0x715): undefined reference to `__guard'
biosdisk.o(.text+0x725): undefined reference to `__stack_smash_handler'
biosdisk.o(.text+0x773): undefined reference to `__guard'
biosdisk.o(.text+0xa27): undefined reference to `__guard'
biosdisk.o(.text+0xa37): undefined reference to `__stack_smash_handler'
biosdisk.o(.text+0xa5c): undefined reference to `__guard'
biosdisk.o(.text+0xb42): undefined reference to `__guard'
biosdisk.o(.text+0xb52): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(bioscd.o): 
In function `bc_add':
bioscd.o(.text+0x115): undefined reference to `__guard'
bioscd.o(.text+0x15b): undefined reference to `__guard'
bioscd.o(.text+0x16b): undefined reference to `__stack_smash_handler'
/usr/obj/usr/src/world_i386/usr/src/sys/boot/i386/loader/../libi386/libi386.a(biosacpi.o): 
In function `biosacpi_detect':
biosacpi.o(.text+0xa): undefined reference to `__guard'
biosacpi.o(.text+0xe3): undefined reference to `__guard'
biosacpi.o(.text+0xf3): undefined reference to `__stack_smash_handler'

On the other hand, "make buildworld" with flags
CFLAGS=-O -pipe
COPTFLAGS=-O -pipe
finished without a problem.

Since we are running DragonFly on a production server I would like it to 
be as secure as possible (which is why I would like to compile world & 
kernel with -fstack-protector flag) and as stable as possible.

IS there a way to compile world with "fstack protection" on RELEASE_1_2 
(an possibly future preview releases)?

Are there any reasons why world, kernel or userland binaries should NOT 
be compiled with "fstach protector" (for ex. stability issues)?

Thank you very much for your help!

Jurij





More information about the Users mailing list