Hi, It complains it can't find the aio.h file. (btw, if uclibc related bug reports are not welcome, tell me, I think I have like 30 more to come for an headless hardened prototype ^^) Reproducible: Always Actual Results: >>> Emerging (1 of 28) sys-fs/xfsprogs-3.1.10 * xfsprogs-3.1.10.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking xfsprogs-3.1.10.tar.gz to /var/tmp/portage/sys-fs/xfsprogs-3.1.10/work >>> Source unpacked in /var/tmp/portage/sys-fs/xfsprogs-3.1.10/work >>> Preparing source in /var/tmp/portage/sys-fs/xfsprogs-3.1.10/work/xfsprogs-3.1.10 ... * Applying xfsprogs-3.1.10-sharedlibs.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/sys-fs/xfsprogs-3.1.10/work/xfsprogs-3.1.10 ... * econf: updating xfsprogs-3.1.10/config.guess with /usr/share/gnuconfig/config.guess * econf: updating xfsprogs-3.1.10/config.sub with /usr/share/gnuconfig/config.sub ./configure --prefix=/usr --build=x86_64-gentoo-linux-uclibc --host=x86_64-gentoo-linux-uclibc --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --bindir=/usr/bin --libexecdir=/usr/lib --disable-gettext --enable-readline --disable-editline --disable-static [...] checking for aio.h... no FATAL ERROR: could not find a valid <aio.h> header. # emerge --info Portage 2.1.12.2 (hardened/linux/uclibc/amd64, gcc-4.6.3, uclibc-0.9.33.2-r4, 3.9.5-hardened x86_64) ================================================================= System uname: Linux-3.9.5-hardened-x86_64-AMD_Turion-tm-_II_Neo_N40L_Dual-Core_Processor-with-gentoo-2.2 Timestamp of tree: Sun, 21 Jul 2013 02:15:01 +0000 ld GNU ld (GNU Binutils) 2.22 ccache version 3.1.9 [disabled] app-shells/bash: 4.2_p45 dev-lang/python: 2.7.5, 3.2.5-r1 dev-util/ccache: 3.1.9 dev-util/cmake: 2.8.10.2-r2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.69 sys-devel/automake: 1.10.3, 1.12.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.7 (virtual/os-headers) sys-libs/uclibc: 0.9.33.2-r4 Repositories: gentoo x-portage ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-gentoo-linux-uclibc" CFLAGS="-O2 -march=native -msse4a -pipe" CHOST="x86_64-gentoo-linux-uclibc" CONFIG_PROTECT="/etc /opt/i2p /opt/i2p/*.config /usr/share/easy-rsa" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=native -msse4a -pipe" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs buildsyspkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync metadata-transfer news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://gentoo.modulix.net/gentoo/ ftp://gentoo.imj.fr/pub/gentoo/" LANG="fr_FR.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/var/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow 3dnowext acl aio amd64 bash-completion caps cli cracklib cxx dri fortran fpm gpm hardened hardenedphp iconv ipv6 ithreads lm_sensors logrotate mmx mmxext modules mudflap ncurses nfs nptl openmp pax_kernel pcre pic readline session sse sse2 sse3 sse4a ssl threads threadsafe uclibc unicode xattr zlib" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="uclibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en fr" NGINX_MODULES_HTTP="auth_basic autoindex gzip proxy rewrite fastcgi uwsgi" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON UCLIBC config file: TARGET_x86_64=y TARGET_ARCH="x86_64" FORCE_OPTIONS_FOR_ARCH=y TARGET_SUBARCH="" ARCH_LITTLE_ENDIAN=y ARCH_HAS_MMU=y ARCH_USE_MMU=y UCLIBC_HAS_FLOATS=y UCLIBC_HAS_FPU=y DO_C99_MATH=y DO_XSI_MATH=y UCLIBC_HAS_FENV=y UCLIBC_HAS_LONG_DOUBLE_MATH=y KERNEL_HEADERS="/usr/include" HAVE_DOT_CONFIG=y DOPIC=y HAVE_SHARED=y FORCE_SHAREABLE_TEXT_SEGMENTS=y LDSO_LDD_SUPPORT=y LDSO_CACHE_SUPPORT=y LDSO_PRELOAD_ENV_SUPPORT=y LDSO_PRELOAD_FILE_SUPPORT=y LDSO_BASE_FILENAME="ld.so" LDSO_STANDALONE_SUPPORT=y LDSO_PRELINK_SUPPORT=y UCLIBC_STATIC_LDCONFIG=y LDSO_RUNPATH=y LDSO_SEARCH_INTERP_PATH=y LDSO_LD_LIBRARY_PATH=y UCLIBC_CTOR_DTOR=y LDSO_GNU_HASH_SUPPORT=y UCLIBC_HAS_THREADS_NATIVE=y UCLIBC_HAS_THREADS=y UCLIBC_HAS_TLS=y PTHREADS_DEBUG_SUPPORT=y UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y MALLOC_STANDARD=y MALLOC_GLIBC_COMPAT=y UCLIBC_DYNAMIC_ATEXIT=y COMPAT_ATEXIT=y UCLIBC_SUSV3_LEGACY=y UCLIBC_SUSV3_LEGACY_MACROS=y UCLIBC_SUSV4_LEGACY=y UCLIBC_HAS_STUBS=y UCLIBC_HAS_SHADOW=y UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y UCLIBC_HAS___PROGNAME=y UCLIBC_HAS_PTY=y ASSUME_DEVPTS=y UNIX98PTY_ONLY=y UCLIBC_HAS_GETPT=y UCLIBC_HAS_LIBUTIL=y UCLIBC_HAS_TM_EXTENSIONS=y UCLIBC_HAS_TZ_CACHING=y UCLIBC_HAS_TZ_FILE=y UCLIBC_HAS_TZ_FILE_READ_MANY=y UCLIBC_TZ_FILE_PATH="/etc/TZ" UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y UCLIBC_PWD_BUFFER_SIZE=256 UCLIBC_GRP_BUFFER_SIZE=256 UCLIBC_LINUX_MODULE_26=y UCLIBC_LINUX_SPECIFIC=y UCLIBC_HAS_GNU_ERROR=y UCLIBC_BSD_SPECIFIC=y UCLIBC_HAS_BSD_ERR=y UCLIBC_HAS_REALTIME=y UCLIBC_HAS_ADVANCED_REALTIME=y UCLIBC_HAS_EPOLL=y UCLIBC_HAS_XATTR=y UCLIBC_HAS_CRYPT_IMPL=y UCLIBC_HAS_SHA256_CRYPT_IMPL=y UCLIBC_HAS_SHA512_CRYPT_IMPL=y UCLIBC_HAS_CRYPT=y UCLIBC_HAS_NETWORK_SUPPORT=y UCLIBC_HAS_SOCKET=y UCLIBC_HAS_IPV4=y UCLIBC_HAS_IPV6=y UCLIBC_HAS_RPC=y UCLIBC_HAS_FULL_RPC=y UCLIBC_HAS_REENTRANT_RPC=y UCLIBC_USE_NETLINK=y UCLIBC_SUPPORT_AI_ADDRCONFIG=y UCLIBC_HAS_BSD_RES_CLOSE=y UCLIBC_HAS_COMPAT_RES_STATE=y UCLIBC_HAS_EXTRA_COMPAT_RES_STATE=y UCLIBC_HAS_RESOLVER_SUPPORT=y UCLIBC_HAS_LIBRESOLV_STUB=y UCLIBC_HAS_LIBNSL_STUB=y UCLIBC_HAS_STRING_GENERIC_OPT=y UCLIBC_HAS_STRING_ARCH_OPT=y UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y UCLIBC_HAS_CTYPE_CHECKED=y UCLIBC_HAS_WCHAR=y UCLIBC_HAS_HEXADECIMAL_FLOATS=y UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 UCLIBC_HAS_STDIO_BUFSIZ_4096=y UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y UCLIBC_HAS_FOPEN_LARGEFILE_MODE=y UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y UCLIBC_HAS_PRINTF_M_SPEC=y UCLIBC_HAS_ERRNO_MESSAGES=y UCLIBC_HAS_SYS_ERRLIST=y UCLIBC_HAS_SIGNUM_MESSAGES=y UCLIBC_HAS_SYS_SIGLIST=y UCLIBC_HAS_GNU_GETOPT=y UCLIBC_HAS_STDIO_FUTEXES=y UCLIBC_HAS_GNU_GETSUBOPT=y UCLIBC_HAS_REGEX=y UCLIBC_HAS_REGEX_OLD=y UCLIBC_HAS_FNMATCH=y UCLIBC_HAS_FNMATCH_OLD=y UCLIBC_HAS_WORDEXP=y UCLIBC_HAS_NFTW=y UCLIBC_HAS_FTW=y UCLIBC_HAS_FTS=y UCLIBC_HAS_GLOB=y UCLIBC_HAS_GNU_GLOB=y UCLIBC_HAS_UTMPX=y RUNTIME_PREFIX="/" DEVEL_PREFIX="/usr" MULTILIB_DIR="lib" HARDWIRED_ABSPATH=y UCLIBC_HAS_ARC4RANDOM=y UCLIBC_HAS_SSP=y PROPOLICE_BLOCK_SEGV=y UCLIBC_BUILD_SSP=y UCLIBC_BUILD_RELRO=y UCLIBC_BUILD_NOW=y UCLIBC_BUILD_NOEXECSTACK=y CROSS_COMPILER_PREFIX="" UCLIBC_EXTRA_CFLAGS="" DOSTRIP=y WARNINGS="-Wall"
Created attachment 372888 [details, diff] xfsprogs-3.1.10.ebuild.patch Ebuild patch adding 4 epatch instructions and a eautoconf to regenerate the configure script after applying removing the useless check for aio.h
Created attachment 372890 [details, diff] xfsprogs-drop-configure-check-for-aio.patch Patch to remove the useless check for aio.h http://patchwork.openembedded.org/patch/46167/ https://github.com/openembedded/meta-oe/blob/master/meta-filesystems/recipes-utils/xfsprogs/files/drop-configure-check-for-aio.patch
Created attachment 372894 [details, diff] xfsprogs-use-statfs.patch Patch to replace deprecated ustat call with statfs in libxfs. ustat is deprecated in POSIX 2008, and simply does not exist in uclibc. The patch did not apply as is, I had to regenerate it by hand. Seems to be rejected upstream (whatever upstream is now, now that Silicon Graphics is no more). http://oss.sgi.com/archives/xfs/2012-03/msg00014.html
Created attachment 372896 [details, diff] xfsprogs-use-sigprocmask.patch Patch Use POSIX signal API signprocmask instead of sigrelse/sighold in xfs_copy.c Again, deprecated functions that do no exist in uclibc and the patch was again rejected upstream. http://oss.sgi.com/archives/xfs/2012-03/msg00015.html
Created attachment 372898 [details, diff] xfsprogs-3.1.10-no-syncrange.patch Patch to remove any reference to sync_file_range() and sync_range_init() in the io directory because the file sync_file_range.c does not exist in the xfsprogs-3.1.10 tarball! I wonder why no glibc user ever complained. This is the last patch to apply.
Created attachment 374830 [details, diff] xfsprogs-use-statfs.patch Remade the patch. On my Lilblue system, xfs_repair /dev/sda11 (which is my /usr/portage/distfiles) was giving me a fatal error "xfs_repair: /dev/sda11 is a mounted filesystem" even when I umount /usr/portage/distfiles beforehand. Replacing ustat requires a bit more work. Here is the result
Created attachment 406570 [details, diff] xfsprogs-3.2.2-remove-aio.patch
Comment on attachment 406570 [details, diff] xfsprogs-3.2.2-remove-aio.patch Attachment 372890 [details, diff] adapted to xfsprogs 3.2.2
Created attachment 406572 [details, diff] xfsprogs-3.2.2.ebuild.patch
Created attachment 421540 [details, diff] Remove aio.h check for xfsprogs-4.3.0 I've re-diffed several of the patches against xfsprogs-4.3.0. This is the one that removes the check for aio.h.
Created attachment 421542 [details, diff] Use sigprocmask for xfsprogs-4.3.0 I've re-diffed several of the patches against xfsprogs-4.3.0. This is the one that uses sigprocmask().
Created attachment 421544 [details, diff] Use statfs() over ustat() for xfsprogs-4.3.0 I've re-diffed several of the patches against xfsprogs-4.3.0. This is the one that switches to using statfs() over ustat(), as uClibc doesn't provide the latter.
Created attachment 421546 [details, diff] ebuild diff for xfsprogs-4.3.0 to compile on uClibc-based userlands Based off the patch here for xfsprogs-3.2.2, this patch fixes up the 4.3.0 ebuild to use the newer patches. It also includes a gross hack to copy include/install-sh to the toplevel build directory. I don't know why the normal xfsprogs build system fails to do this, but it only fails to do so on uclibc. If this isn't done, the install phase will fail with errors like this: cd ../libhandle/.libs; ../../install-sh -o portage -g portage -m 755 -d /lib; ../../install-sh -o portage -g portage -m 755 -T so_dot_version libhandle.lai /lib; ../../install-sh -o portage -g portage -T so_dot_current libhandle.lai /lib ../../install-sh: so_dot_version does not exist. ../../install-sh: so_dot_current does not exist. It appears the stock install-sh script is missing a case statement to handle the "so_dot_version" and "so_dot_current" operations, while the install-sh script in include/ has them. I'm not sure why it's done this way, but it seems xfsprogs has a number of curiosities about its build system. If no one else has a better idea how to fix this, then probably the better fix is to wrap the 'cp' command in 'use elibc_uclibc", because the script is copied over fine on my glibc userlands.
@embedded, @base-system, Ran into the xfsprogs build issues on a uclibc-mips2 stage3 produced from catalyst. The patches attached to this bug, which I've updated to work against xfsprogs-4.3.0, look to work to compile the package. I'll be testing whether they actually work in a bit once I cobble a netboot image together. I think these should be fine for 4.3.0, which is currently unstable in the tree. The only bit that bothers me is the install-sh script issue that appears to manifest itself only on uclibc-based userlands. The ebuild patch I added adds a hack/workaround for it, but the underlying issue of why that script is not properly copied to the toplevel directory (which the Makefile suggests happens in the "make configure" case) needs to be solved. Several of these patches should probably be pushed upstream, too. Thoughts?
Sending the three main patches upstream for review before adding them to our ebuild.
(In reply to Joshua Kinard from comment #15) > Sending the three main patches upstream for review before adding them to our > ebuild. - The AIO patch was accepted by upstream - The sigprocmask patch needs a minor refactor, then to be resubmitted - the ustat() -> statfs() patch will be superseded by something "more invasive" that upstream is planning. I'll pause on adding these to the ebuild until I can fix the sigprocmask patch to meet what upstream wants, and see about getting a copy of what upstream is working on for the ustat() issue.
*** Bug 584136 has been marked as a duplicate of this bug. ***
(In reply to Joshua Kinard from comment #12) > Created attachment 421544 [details, diff] [details, diff] > Use statfs() over ustat() for xfsprogs-4.3.0 > > I've re-diffed several of the patches against xfsprogs-4.3.0. This is the > one that switches to using statfs() over ustat(), as uClibc doesn't provide > the latter. Of course uClibc does support ustat(). It's just disabled in the default config, because someone decided this was a smart thing to do.
*** Bug 585668 has been marked as a duplicate of this bug. ***
sys-libs/uclibc has been removed from the tree, replaced by sys-libs/uclibc-ng