Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 908892 - sys-fs/e2fsprogs-1.47.0-r1: Build failure in lib/ext2fs/llseek.c on musl/mips2_o32 w/ musl-1.2.4
Summary: sys-fs/e2fsprogs-1.47.0-r1: Build failure in lib/ext2fs/llseek.c on musl/mips...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: MIPS Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard: only on mips
Keywords:
Depends on:
Blocks: musl-1.2.4
  Show dependency tree
 
Reported: 2023-06-20 15:21 UTC by Joshua Kinard
Modified: 2023-12-21 19:33 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (e2fsprogs-1.47.0-r1_build-musl-o32-llseek-fail.log,98.95 KB, text/plain)
2023-06-20 15:21 UTC, Joshua Kinard
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joshua Kinard gentoo-dev 2023-06-20 15:21:43 UTC
Created attachment 864314 [details]
build.log

Getting a build failure on e2fsprogs-1.47.0-r1 in my musl/mips2_o32 chroot target using gcc-13.1.1_p20230527.  I've done a full emerge -e @world using gcc-13 and this is the only package that failed to build in this chroot.  Thinking it's a gcc-13 thing, but I unfortunately don't have the gcc-12 compiler available to double-check against.

> mips-unknown-linux-musl-gcc -I. -I../../lib -I/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib  -D_GNU_SOURCE  -O2 -pipe -march=mips3 -mtune=mips3 -mplt -mfix-r4000 -mfix-r4400 -pthread  -DHAVE_CONFIG_H  -c /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c   -o llseek.o
> 
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:70:22: error: expected declaration specifiers or '...' before '_llseek'
>    70 | static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
>       |                      ^~~~~~~
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:70:43: error: unknown type name 'fd'
>    70 | static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
>       |                                           ^~
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:70:60: error: unknown type name 'offset_high'
>    70 | static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
>       |                                                            ^~~~~~~~~~~
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:71:33: error: unknown type name 'offset_low'; did you mean 'offsetof'?
>    71 |                  unsigned long, offset_low,ext2_loff_t *,result,
>       |                                 ^~~~~~~~~~
>       |                                 offsetof
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:71:58: error: unknown type name 'result'
>    71 |                  unsigned long, offset_low,ext2_loff_t *,result,
>       |                                                          ^~~~~~
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:72:32: error: unknown type name 'origin'
>    72 |                  unsigned int, origin);
>       |                                ^~~~~~
> /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/llseek.c:67:12: warning: '_llseek' used but never defined
>    67 | static int _llseek (unsigned int, unsigned long,
>       |            ^~~~~~~
> mips-unknown-linux-musl-gcc -I. -I../../lib -I/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib  -D_GNU_SOURCE  -O2 -pipe -march=mips3 -mtune=mips3 -mplt -mfix-r4000 -mfix-r4400 -pthread  -DHAVE_CONFIG_H  -fPIC -shared -o elfshared/inline.o -c /var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0/lib/ext2fs/inline.c
> make[2]: *** [Makefile:696: llseek.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> 
> 
> make[2]: Leaving directory '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0-abi_mips_o32.o32/lib/ext2fs'
> make[1]: *** [Makefile:456: all-libs-recursive] Error 1
> make[1]: Leaving directory '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0-abi_mips_o32.o32'
> make: *** [Makefile:371: all] Error 2
>  * ERROR: sys-fs/e2fsprogs-1.47.0-r1::gentoo failed (compile phase):
>  *   emake failed
>  *
>  * If you need support, post the output of `emerge --info '=sys-fs/e2fsprogs-1.47.0-r1::gentoo'`,
>  * the complete build log and the output of `emerge -pqv '=sys-fs/e2fsprogs-1.47.0-r1::gentoo'`.
>  * The complete build log is located at '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/temp/build.log'.
>  * The ebuild environment file is located at '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/temp/environment'.
>  * Working directory: '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0-abi_mips_o32.o32'
>  * S: '/var/tmp/portage/sys-fs/e2fsprogs-1.47.0-r1/work/e2fsprogs-1.47.0'
Comment 1 Joshua Kinard gentoo-dev 2023-06-20 15:23:01 UTC
> # emerge --info
> Portage 3.0.48.1 (python 3.11.4-final-0, default/linux/mips/17.0/o32/musl, gcc-13, musl-1.2.4, 6.1.34-gentoo mips)
> =================================================================
> System uname: Linux-6.1.34-gentoo-mips-with-libc
> KiB Mem:    65787096 total,  53832148 free
> KiB Swap:          0 total,         0 free
> Timestamp of repository gentoo: Thu, 15 Jun 2023 15:15:01 +0000
> Head commit of repository gentoo: 95abdabd5c76f6795a0839dea550a6bf30fda384
> sh bash 5.2_p15-r3
> ld GNU ld (Gentoo 2.40 p5) 2.40.0
> app-misc/pax-utils:        1.3.7::gentoo
> app-shells/bash:           5.2_p15-r3::gentoo
> dev-lang/perl:             5.36.1-r2::gentoo
> dev-lang/python:           3.11.4::gentoo
> dev-util/meson:            1.1.1::gentoo
> sys-apps/baselayout:       2.13-r1::gentoo
> sys-apps/openrc:           0.47.1::gentoo
> sys-apps/sandbox:          2.31::gentoo
> sys-devel/autoconf:        2.71-r6::gentoo
> sys-devel/automake:        1.16.5-r1::gentoo
> sys-devel/binutils:        2.40-r5::gentoo
> sys-devel/binutils-config: 5.5::gentoo
> sys-devel/gcc:             13.1.1_p20230527::gentoo
> sys-devel/gcc-config:      2.11::gentoo
> sys-devel/libtool:         2.4.7-r1::gentoo
> sys-devel/make:            4.4.1-r1::gentoo
> sys-kernel/linux-headers:  6.1::gentoo (virtual/os-headers)
> sys-libs/musl:             1.2.4::gentoo
> Repositories:
> 
> gentoo
>     location: /usr/portage
>     sync-type: rsync
>     sync-uri: rsync://rsync.gentoo.org/gentoo-portage
>     priority: -1000
>     volatile: True
>     sync-rsync-extra-opts:
>     sync-rsync-verify-jobs: 1
>     sync-rsync-verify-metamanifest: no
>     sync-rsync-verify-max-age: 24
> 
> ACCEPT_KEYWORDS="mips ~mips"
> ACCEPT_LICENSE="@FREE"
> ASFLAGS="-Wa,-march=mips3 -Wa,-mtune=mips3"
> CBUILD="mips-unknown-linux-musl"
> CFLAGS="-O2 -pipe -march=mips3 -mtune=mips3 -mplt -mfix-r4000 -mfix-r4400"
> CHOST="mips-unknown-linux-musl"
> CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
> CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
> CXXFLAGS="-O2 -pipe -march=mips3 -mtune=mips3 -mplt -mfix-r4000 -mfix-r4400"
> DISTDIR="/usr/portage/distfiles"
> ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
> FCFLAGS="-O2 -march=mips3 -mabi=32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
> FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersandbox usersync xattr"
> FFLAGS="-O2 -march=mips3 -mabi=32 -mplt -mfix-r4000 -mfix-r4400 -pipe"
> GENTOO_MIRRORS="http://distfiles.gentoo.org"
> INSTALL_MASK="charset.alias /usr/share/locale/locale.alias"
> LANG="C.UTF8"
> LDFLAGS="-Wl,-O1 -Wl,--as-needed"
> LEX="flex"
> MAKEOPTS="-j14"
> PKGDIR="/usr/portage/packages"
> PORTAGE_CONFIGROOT="/"
> PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
> PORTAGE_TMPDIR="/var/tmp"
> SHELL="/bin/bash"
> USE="acl big-endian bzip2 cli crypt iconv ipv6 mips ncurses nls nptl pam pcre readline seccomp split-usr ssl unicode xattr zlib" ABI_MIPS="o32" ADA_TARGET="gnat_2021" 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="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="musl" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby30 ruby31" VIDEO_CARDS="fbdev impact dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
> Unset:  ADDR2LINE, AR, ARFLAGS, AS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

> # emerge -pqv '=sys-fs/e2fsprogs-1.47.0-r1::gentoo'
> [ebuild   R   ] sys-fs/e2fsprogs-1.47.0-r1  USE="(split-usr) tools -cron (-fuse) (-nls) -static-libs -test"
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-06-20 15:30:27 UTC
This may be musl-1.2.4.
Comment 3 Joshua Kinard gentoo-dev 2023-06-20 15:47:53 UTC
(In reply to Sam James from comment #2)
> This may be musl-1.2.4.

Possible....let me copy a backup of that chroot from my ZFS snapshots folder and test this.  That snapshot still has gcc-12 in it w/ musl-1.2.3, so should verify if this is the case or not.
Comment 4 Joshua Kinard gentoo-dev 2023-06-20 16:40:36 UTC
(In reply to Joshua Kinard from comment #3)
> (In reply to Sam James from comment #2)
> > This may be musl-1.2.4.
> 
> Possible....let me copy a backup of that chroot from my ZFS snapshots folder
> and test this.  That snapshot still has gcc-12 in it w/ musl-1.2.3, so
> should verify if this is the case or not.

Correct, it compiles fine w/ gcc-12 against musk-1.2.3, but fails with gcc-12 against musl-1.2.4, so it is not a gcc-porting issue.  I've updated the bug title to match.
Comment 5 Andreas K. Hüttel archtester gentoo-dev 2023-06-25 20:34:38 UTC
Affects musl stages
Comment 6 Andreas K. Hüttel archtester gentoo-dev 2023-06-25 20:40:29 UTC
CC'ing Theodore Ts'o as upstream
Comment 7 Andreas K. Hüttel archtester gentoo-dev 2023-06-25 21:27:51 UTC
The workaround from the musl 1.2.4 release notes, adding -D_LARGEFILE64_SOURCE to CFLAGS, does *not* help. No visible change in errors.

https://musl.libc.org/releases.html
Comment 8 Andreas K. Hüttel archtester gentoo-dev 2023-06-25 22:16:15 UTC
Hilariously, our ebuild passes --disable-largefile (!).

Removing that or replacing it with --enable-largefile, with or without -D_LARGEFILE64_SOURCE, did not help however.
Comment 9 Larry the Git Cow gentoo-dev 2023-06-25 22:52:58 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd8facfff575a005ef0177d2475948d0f08eaf81

commit cd8facfff575a005ef0177d2475948d0f08eaf81
Author:     Andreas K. Hüttel <dilfridge@gentoo.org>
AuthorDate: 2023-06-25 22:50:48 +0000
Commit:     Andreas K. Hüttel <dilfridge@gentoo.org>
CommitDate: 2023-06-25 22:52:47 +0000

    sys-fs/e2fsprogs: Fix build with musl-1.2.4 (on mips o32)
    
    * -D_GNU_SOURCE is not needed anymore (the line is from 2012)
    
    * Append -D_FILE_OFFSET_BITS=64 to flags only on musl
    
    * Keep --disable-largefile only on glibc ...
    
    Bug: https://bugs.gentoo.org/908892
    Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>

 sys-fs/e2fsprogs/e2fsprogs-1.47.0-r1.ebuild | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
Comment 10 Joshua Kinard gentoo-dev 2023-06-26 00:20:36 UTC
> The bug has been referenced in the following commit(s):
> 
> https://gitweb.gentoo.org/repo/gentoo.git/commit/
> ?id=cd8facfff575a005ef0177d2475948d0f08eaf81
[snip]
> +	# need to check effect on ABI (???)
> +	use elibc_glibc && myeconfargs+=( --disable-largefile )
> +

Speculation: the bit about ABI //might// be a MIPS reference, as we're the arch that has the oddball ABI mix, mainly because of N32's hybrid nature.  I suppose x32 might also be applicable here, as it tries to do for x86_64 what N32 does for MIPS.
Comment 11 Larry the Git Cow gentoo-dev 2023-06-26 18:18:41 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=999463a3a69fb9e6877c08dea7ffb05554c3de55

commit 999463a3a69fb9e6877c08dea7ffb05554c3de55
Author:     Mike Gilbert <floppym@gentoo.org>
AuthorDate: 2023-06-26 18:17:29 +0000
Commit:     Mike Gilbert <floppym@gentoo.org>
CommitDate: 2023-06-26 18:17:29 +0000

    sys-fs/e2fsprogs: enable largefile unconditionally
    
    Bug: https://bugs.gentoo.org/908892
    Signed-off-by: Mike Gilbert <floppym@gentoo.org>

 .../{e2fsprogs-1.47.0-r1.ebuild => e2fsprogs-1.47.0-r2.ebuild}        | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
Comment 12 Joshua Kinard gentoo-dev 2023-06-27 02:39:08 UTC
Looks to be fixed w/ e2fsprogs-1.47.0-r2 in my musl mips_o32 chroot.
Comment 13 Mike Gilbert gentoo-dev 2023-06-27 13:52:50 UTC
(In reply to Joshua Kinard from comment #12)
> Looks to be fixed w/ e2fsprogs-1.47.0-r2 in my musl mips_o32 chroot.

Could you share that chroot with me?

I would like to investigate why passing -D_FILE_OFFSET_BITS=64 is necessary when that should be automatically set by the --enable-largefile option.
Comment 14 Joshua Kinard gentoo-dev 2023-06-27 22:08:58 UTC
(In reply to Mike Gilbert from comment #13)
> (In reply to Joshua Kinard from comment #12)
> > Looks to be fixed w/ e2fsprogs-1.47.0-r2 in my musl mips_o32 chroot.
> 
> Could you share that chroot with me?
> 
> I would like to investigate why passing -D_FILE_OFFSET_BITS=64 is necessary
> when that should be automatically set by the --enable-largefile option.

Sure, I copied a tar.xz of it to my devspace under tmp/musl-o32_mips3.tar.xz.  I *think* you should be able to copy it right out.

May need to replace the /usr/sbin/qemu-* binaries with those from your system, as mine are built w/ Ryzen zen2 optimizations, but the MIPS bits in the chroot are using fairly standard flags for that architecture.  I typically mount portage at the classic /usr/portage spot, the musl overlay at /opt/musl-overlay, and sometimes a local portage tree at /opt/portage-local, FWIW.  Oh, and adjust MAKEOPTS in etc/portage/make.conf accordingly.  In my setup, I am passing -j14.
Comment 15 Mike Gilbert gentoo-dev 2023-06-28 00:59:18 UTC
(In reply to Joshua Kinard from comment #14)

Thanks, I have retrieved the file.
Comment 16 Mike Gilbert gentoo-dev 2023-06-28 14:59:50 UTC
I see the issue now. Working on a patch.
Comment 17 gwendal grignou 2023-07-14 22:57:17 UTC
*** Bug 896340 has been marked as a duplicate of this bug. ***