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