util-linux/lib/Makemodule.am

127 lines
2.5 KiB
Plaintext
Raw Normal View History

noinst_LTLIBRARIES += libcommon.la
libcommon_la_CFLAGS = $(AM_CFLAGS)
libcommon_la_SOURCES = \
lib/at.c \
lib/blkdev.c \
lib/canonicalize.c \
lib/crc32.c \
lib/crc64.c \
lib/env.c \
lib/fileutils.c \
lib/ismounted.c \
lib/mangle.c \
lib/match.c \
lib/mbsalign.c \
lib/md5.c \
lib/pager.c \
lib/path.c \
lib/procutils.c \
lib/randutils.c \
lib/setproctitle.c \
lib/strutils.c \
lib/sysfs.c \
lib/timeutils.c \
lib/ttyutils.c \
lib/exec_shell.c \
lib/strv.c \
lib/readutmp.c
if LINUX
libcommon_la_SOURCES += \
lib/linux_version.c \
lib/loopdev.c
endif
if !HAVE_LANGINFO
libcommon_la_SOURCES += lib/langinfo.c
endif
if HAVE_CPU_SET_T
libcommon_la_SOURCES += lib/cpuset.c
endif
noinst_LTLIBRARIES += libtcolors.la
libtcolors_la_CFLAGS = $(AM_CFLAGS) $(TINFO_CFLAGS)
libtcolors_la_LIBADD = $(TINFO_LIBS)
libtcolors_la_SOURCES = lib/colors.c include/colors.h
dist_man_MANS += lib/terminal-colors.d.5
check_PROGRAMS += \
test_at \
test_blkdev \
test_canonicalize \
test_colors \
test_fileutils \
test_ismounted \
test_mangle \
test_procutils \
test_randutils \
test_strutils \
test_ttyutils
if LINUX
if HAVE_CPU_SET_T
check_PROGRAMS += test_cpuset
endif
check_PROGRAMS += \
test_sysfs \
test_pager
endif
test_ttyutils_SOURCES = lib/ttyutils.c
test_ttyutils_CFLAGS = -DTEST_PROGRAM
test_ttyutils_LDADD = libcommon.la
test_blkdev_SOURCES = lib/blkdev.c
loopdev: sync capacity after setting it I recently tried to mount an hfsplus file system from an image file with a partition table by using the loop offset and sizelimit options to specify the location of the file system. hfsplus stores some metadata at a set offset from the end of the partition, so it's sensitive to the device size reported by the kernel. It worked with this: But failed with this: /dev/loop0: [0089]:2 (<imagefile>), offset 32768, sizelimit 102400000 /dev/loop1: [0089]:2 (<imagefile>), offset 32768, sizelimit 102400000 /proc/partitions shows the correct number of blocks to match the sizelimit. But if I set a breakpoint in mount before the mount syscall, I could see: 102400000 102432768 The kernel loop driver will set the gendisk capacity of the device at LOOP_SET_STATUS64 but won't sync it to the block device until one of two conditions are met: All open file descriptors referring to the device are closed (and it will sync when re-opened) or if the LOOP_SET_CAPACITY ioctl is called to sync it. Since mount opens the device and passes it directly to the mount syscall after LOOP_SET_STATUS64 without closing and reopening it, the sizelimit argument is effectively ignroed. The capacity needs to be synced immediately for it to work as expected. This patch adds the LOOP_SET_CAPACITY call to loopctx_setup_device since the device isn't yet released to the user, so it's safe to sync the capacity immediately. [kzak@redhat.com: - port to the current git HEAD, - use uint64_t] Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Karel Zak <kzak@redhat.com>
2013-04-09 07:32:50 -05:00
test_blkdev_CFLAGS = -DTEST_PROGRAM_BLKDEV
test_blkdev_LDADD = libcommon.la
test_ismounted_SOURCES = lib/ismounted.c
test_ismounted_CFLAGS = -DTEST_PROGRAM
test_ismounted_LDADD = libcommon.la
test_mangle_SOURCES = lib/mangle.c
test_mangle_CFLAGS = -DTEST_PROGRAM
test_at_SOURCES = lib/at.c
test_at_CFLAGS = -DTEST_PROGRAM_AT
test_strutils_SOURCES = lib/strutils.c
test_strutils_CFLAGS = -DTEST_PROGRAM
test_colors_SOURCES = lib/colors.c
test_colors_CFLAGS = -DTEST_PROGRAM $(TINFO_CFLAGS)
test_colors_LDADD = $(LDADD) $(TINFO_LIBS)
test_randutils_SOURCES = lib/randutils.c
test_randutils_CFLAGS = -DTEST_PROGRAM
test_procutils_SOURCES = lib/procutils.c lib/at.c
test_procutils_CFLAGS = -DTEST_PROGRAM
if LINUX
test_cpuset_SOURCES = lib/cpuset.c
test_cpuset_CFLAGS = -DTEST_PROGRAM
test_sysfs_SOURCES = lib/sysfs.c
test_sysfs_CFLAGS = -DTEST_PROGRAM_SYSFS
test_sysfs_LDADD = libcommon.la
test_pager_SOURCES = lib/pager.c
test_pager_CFLAGS = -DTEST_PROGRAM
endif
test_fileutils_SOURCES = lib/fileutils.c
test_fileutils_CFLAGS = -DTEST_PROGRAM
test_canonicalize_SOURCES = lib/canonicalize.c
test_canonicalize_CFLAGS = -DTEST_PROGRAM_CANONICALIZE