Commit Graph

23 Commits

Author SHA1 Message Date
Brian Behlendorf 6d72cb7326 Fix pthread stack size on 32-bit platforms
For some reason which remains mysterious to me the shared library
which calls pthread_create() must be linked with -pthread.  If this
is not done on 32-bit system the default ulimit stack size is used.
Surprisingly, on a 64-bit system the stack limit specified by the
pthread_attr is honored even when -pthread is not passed when linking
the shared library.
2010-07-21 09:59:39 -07:00
Brian Behlendorf 6f1eda0629 Add configure check for -Wframe-larger-than=<size>
It turns out the gcc option -Wframe-larger-than=<size> which I recently
added to the build system is not supported in older versions of gcc.
Since this is just a flag to ensure I keep stack usage under control
I've added a configure check to detect if gcc supports it.  If it's
available we use it in the proper places, if it's not we don't.
2010-06-29 16:53:02 -07:00
Brian Behlendorf 9af7aa53eb Set stack frame limit
For all module/library functions ensure so stack frame exceeds 1024
bytes.  Ideally this should be set lower to say 512 bytes but there
are still numerous functions which exceed even this limit.  For now
this is set to 1024 to ensure we catch the worst offenders.

Additionally, set the limit for ztest to 1024 bytes since the idea
here is to catch stack issues in user space before we find them by
overrunning a kernel stack.  This should also be reduced to 512
bytes as soon as all the trouble makes are fixed.

Finally, add -fstack-check to gcc build options when --enable-debug
is specified at configure time.  This ensures that each page on the
stack will be touched and we will generate a segfault on stack
overflow.

Over time we can gradually fix the following functions:

536 zfs:dsl_deadlist_regenerate
536 zfs:dsl_load_sets
536 zfs:zil_parse
544 zfs:zfs_ioc_recv
552 zfs:dsl_deadlist_insert_bpobj
552 zfs:vdev_dtl_sync
584 zfs:copy_create_perms
608 zfs:ddt_class_contains
608 zfs:ddt_prefetch
608 zfs:__dprintf
616 zfs:ddt_lookup
648 zfs:dsl_scan_ddt
696 zfs:dsl_deadlist_merge
736 zfs:ddt_zap_walk
744 zfs:dsl_prop_get_all_impl
872 zfs:dnode_evict_dbufs
2010-06-29 10:08:48 -07:00
Brian Behlendorf c430e23552 Update zfs-branch with build system updates
Required Makefile modifications for updated ZFS code.
2010-06-14 15:46:11 -07:00
Brian Behlendorf 4d5d0f9ef5 Include FMA source and headers in build system 2010-04-29 10:55:27 -07:00
Brian Behlendorf c8e569dd1c Build system and packaging (RPM support) (Part 2)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:13:30 -07:00
Brian Behlendorf 6791a1ee34 I don't think we need this in userspace 2009-01-09 15:07:32 -08:00
Brian Behlendorf ff09d64647 Pull all source in to be built, it will be ifdef'ed out as need by higher level topic branches 2009-01-09 14:37:45 -08:00
Brian Behlendorf b457fb49f9 Remove vdev_disk from userspace build, vdev_file is used 2009-01-08 10:23:59 -08:00
Brian Behlendorf c15fa0ceb0 Add include paths 2009-01-05 13:44:26 -08:00
Brian Behlendorf 29b47d366e Remove some headers 2008-12-22 14:42:02 -08:00
Brian Behlendorf 121effcbee Pull everything in to the Makefile 2008-12-22 12:51:03 -08:00
Brian Behlendorf 7047bb0678 Add missing files from Makefile.am 2008-12-22 11:36:48 -08:00
Brian Behlendorf 10911f9d71 Add missing sources 2008-12-22 10:27:41 -08:00
Brian Behlendorf 60289ccd8f Add zfs_byteswap 2008-12-19 16:51:14 -08:00
Brian Behlendorf 96813619bf Pull in new background scrubber 2008-12-19 16:29:13 -08:00
Brian Behlendorf 8ab575cd8e Remove vdev_disk.c from userspace build, we simply use vdev_file.c here 2008-12-19 13:35:29 -08:00
Brian Behlendorf e485017676 Remove spa_boot from userspace build 2008-12-19 12:04:45 -08:00
Brian Behlendorf f799177730 Add all sources for libzfs userspace funcationality 2008-12-17 16:39:45 -08:00
Brian Behlendorf a7b063d224 Add DEFAULT_INCLUDE to rules, adjust = to += accordingly 2008-12-16 08:58:41 -08:00
Brian Behlendorf 01db09fde5 Collapse libzcommon in to libzpool 2008-12-12 13:57:47 -08:00
Brian Behlendorf 7005de9a0c Refresh Makefile.am's 2008-12-12 09:20:33 -08:00
Brian Behlendorf 593aa3e10d Move all current Makefiles to correct locations, updates still needed 2008-12-11 14:55:55 -08:00