Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
* David Abdurachmanov: > On Thu, Feb 1, 2024 at 3:24 PM Florian Weimer wrote: >> Please try this: >> >> diff --git a/glibc.spec b/glibc.spec >> index 6116752..e4d5e44 100644 >> --- a/glibc.spec >> +++ b/glibc.spec >> @@ -1571,6 +1571,10 @@ for lib in lib lib64; do >> set +x >> slbase=$(basename $sl) >> sltarget=$(basename $(readlink $sl)) >> + if test "$sltarget" = . ; then >> + # This is the lp64d symbolic link on riscv64, see above. >> + continue >> + fi >> if ! test -r usr/$lib/$sltarget; then >> echo "$sl: inferred $sltarget ($(readlink $sl)) missing" >> exit 1 >> > Hi Florian, > > The above worked. See the build: > http://fedora.riscv.rocks/koji/buildinfo?buildID=281296 > > Could you land this change to glibc.spec? Applied in glibc-2.39-2.fc40. Thanks, Florian -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
On Thu, Feb 1, 2024 at 3:24 PM Florian Weimer wrote: > Please try this: > > diff --git a/glibc.spec b/glibc.spec > index 6116752..e4d5e44 100644 > --- a/glibc.spec > +++ b/glibc.spec > @@ -1571,6 +1571,10 @@ for lib in lib lib64; do > set +x > slbase=$(basename $sl) > sltarget=$(basename $(readlink $sl)) > + if test "$sltarget" = . ; then > + # This is the lp64d symbolic link on riscv64, see above. > + continue > + fi > if ! test -r usr/$lib/$sltarget; then > echo "$sl: inferred $sltarget ($(readlink $sl)) missing" > exit 1 > Hi Florian, The above worked. See the build: http://fedora.riscv.rocks/koji/buildinfo?buildID=281296 Could you land this change to glibc.spec? Cheers, david -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
* Richard W. M. Jones: >> We will have to fix this again (and wrap-find-debuginfo.sh and as well) >> once Fedora adopts the standard RISC-V paths. > > Shouldn't we adopt the normal Fedora paths instead? No, we should use the official RISC-V paths because we might need them if we want to adopt other RISC-V ABIs. Thanks, Florian -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
On Thu, Feb 1, 2024 at 4:10 PM David Abdurachmanov wrote: > > On Thu, Feb 1, 2024 at 3:44 PM Richard W.M. Jones wrote: > > > > On Thu, Feb 01, 2024 at 02:24:10PM +0100, Florian Weimer wrote: > > > * David Abdurachmanov: > > > > > > > Hi Florian, > > > > > > > > I was trying to build the latest glibc [0] in Fedora 40 for riscv64, > > > > but it failed. It seems to be related to your last commit. > > > > > > > > [..] > > > > + ln -s libBrokenLocale.so.1 usr/lib64/libBrokenLocale.so > > > > + for sl in `find $RPM_BUILD_ROOT/$pfx$lib -maxdepth 1 -type l` > > > > + set +x > > > > + ln -s . usr/lib64/lp64d > > > > ln: failed to create symbolic link 'usr/lib64/lp64d/.': File exists > > > > error: Bad exit status from /var/tmp/rpm-tmp.7qPZkS (%install) > > > > [..] > > > > > > > > Full log: > > > > http://fedora.riscv.rocks/kojifiles/work/tasks/9391/1599391/build.log > > > > Build info: http://fedora.riscv.rocks/koji/taskinfo?taskID=1599391 > > > > > > > > This is probably related to this: > > > > https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.spec#_1279 > > > > > > > > Cheers, > > > > david > > > > - - - > > > > [0] > > > > https://src.fedoraproject.org/rpms/glibc/c/0bd93c5697bc60e4f4a84f5b55c98f351883e689?branch=rawhide > > > > > > That refers to: > > > > > > %ifarch riscv64 > > > # RISC-V ABI wants to install everything in /lib64/lp64d or > > > /usr/lib64/lp64d. > > > # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: > > > # > > > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ > > > for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do > > > mkdir -p $d > > > (cd $d && ln -sf . lp64d) > > > done > > > %endif > > > > Although it was me who added this in 2018, I think it looks like a > > mess now. Why do we need this .../lp64d subdir for Fedora? > > That's because RISCV uses ../lib64/ as the default library path. > > [davidlt@fedora-riscv ~]$ ld --verbose | grep SEARCH_DIR | tr -s ' ;' '\n' > SEARCH_DIR("=/usr/riscv64-redhat-linux/lib64/lp64d") > SEARCH_DIR("=/usr/riscv64-redhat-linux/lib64") > SEARCH_DIR("=/usr/riscv64-redhat-linux/lib6464/lp64d") > SEARCH_DIR("=/usr/lib6464/lp64d") > SEARCH_DIR("=/usr/lib64") > SEARCH_DIR("=/usr/local/lib64/lp64d") > SEARCH_DIR("=/usr/local/lib64") > SEARCH_DIR("=/lib64/lp64d") > SEARCH_DIR("=/lib64") > SEARCH_DIR("=/usr/lib64/lp64d") > SEARCH_DIR("=/usr/riscv64-redhat-linux/lib") > SEARCH_DIR("=/usr/local/lib") > SEARCH_DIR("=/lib") > SEARCH_DIR("=/usr/lib") I forgot to attach the default search paths for ld-linux-riscv6-lp64d.so.1: [..] Shared library search path: (libraries located via /etc/ld.so.cache) /lib64/lp64d (system search path) /usr/lib64/lp64d (system search path) [..] > > There are some (probably now old) binutils versions that didn't even > look at the lib64 directory at all. > > Thus by default RISCV looks like multilib, and looks into the proper > ABI directories. > > We actually compile GCC as multilib with just one ABI listed. > > [..] > --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d > [..] > > > > > > Please try this: > > > > > > diff --git a/glibc.spec b/glibc.spec > > > index 6116752..e4d5e44 100644 > > > --- a/glibc.spec > > > +++ b/glibc.spec > > > @@ -1571,6 +1571,10 @@ for lib in lib lib64; do > > > set +x > > > slbase=$(basename $sl) > > > sltarget=$(basename $(readlink $sl)) > > > + if test "$sltarget" = . ; then > > > + # This is the lp64d symbolic link on riscv64, see above. > > > + continue > > > + fi > > > if ! test -r usr/$lib/$sltarget; then > > > echo "$sl: inferred $sltarget ($(readlink $sl)) missing" > > > exit 1 > > > > > > We will have to fix this again (and wrap-find-debuginfo.sh and as well) > > > once Fedora adopts the standard RISC-V paths. > > > > Shouldn't we adopt the normal Fedora paths instead? > > That's definitely a discussion object, but we need to check if this > actually works. > > Basically RISCV doesn't comply with FHS, unless something changed. > > david > > > > > Rich. > > > > -- > > Richard Jones, Virtualization Group, Red Hat > > http://people.redhat.com/~rjones > > Read my programming and virtualization blog: http://rwmj.wordpress.com > > libguestfs lets you edit virtual machines. Supports shell scripting, > > bindings from many languages. http://libguestfs.org > > -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it:
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
On Thu, Feb 1, 2024 at 3:44 PM Richard W.M. Jones wrote: > > On Thu, Feb 01, 2024 at 02:24:10PM +0100, Florian Weimer wrote: > > * David Abdurachmanov: > > > > > Hi Florian, > > > > > > I was trying to build the latest glibc [0] in Fedora 40 for riscv64, > > > but it failed. It seems to be related to your last commit. > > > > > > [..] > > > + ln -s libBrokenLocale.so.1 usr/lib64/libBrokenLocale.so > > > + for sl in `find $RPM_BUILD_ROOT/$pfx$lib -maxdepth 1 -type l` > > > + set +x > > > + ln -s . usr/lib64/lp64d > > > ln: failed to create symbolic link 'usr/lib64/lp64d/.': File exists > > > error: Bad exit status from /var/tmp/rpm-tmp.7qPZkS (%install) > > > [..] > > > > > > Full log: > > > http://fedora.riscv.rocks/kojifiles/work/tasks/9391/1599391/build.log > > > Build info: http://fedora.riscv.rocks/koji/taskinfo?taskID=1599391 > > > > > > This is probably related to this: > > > https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.spec#_1279 > > > > > > Cheers, > > > david > > > - - - > > > [0] > > > https://src.fedoraproject.org/rpms/glibc/c/0bd93c5697bc60e4f4a84f5b55c98f351883e689?branch=rawhide > > > > That refers to: > > > > %ifarch riscv64 > > # RISC-V ABI wants to install everything in /lib64/lp64d or > > /usr/lib64/lp64d. > > # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: > > # > > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ > > for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do > > mkdir -p $d > > (cd $d && ln -sf . lp64d) > > done > > %endif > > Although it was me who added this in 2018, I think it looks like a > mess now. Why do we need this .../lp64d subdir for Fedora? That's because RISCV uses ../lib64/ as the default library path. [davidlt@fedora-riscv ~]$ ld --verbose | grep SEARCH_DIR | tr -s ' ;' '\n' SEARCH_DIR("=/usr/riscv64-redhat-linux/lib64/lp64d") SEARCH_DIR("=/usr/riscv64-redhat-linux/lib64") SEARCH_DIR("=/usr/riscv64-redhat-linux/lib6464/lp64d") SEARCH_DIR("=/usr/lib6464/lp64d") SEARCH_DIR("=/usr/lib64") SEARCH_DIR("=/usr/local/lib64/lp64d") SEARCH_DIR("=/usr/local/lib64") SEARCH_DIR("=/lib64/lp64d") SEARCH_DIR("=/lib64") SEARCH_DIR("=/usr/lib64/lp64d") SEARCH_DIR("=/usr/riscv64-redhat-linux/lib") SEARCH_DIR("=/usr/local/lib") SEARCH_DIR("=/lib") SEARCH_DIR("=/usr/lib") There are some (probably now old) binutils versions that didn't even look at the lib64 directory at all. Thus by default RISCV looks like multilib, and looks into the proper ABI directories. We actually compile GCC as multilib with just one ABI listed. [..] --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d [..] > > > Please try this: > > > > diff --git a/glibc.spec b/glibc.spec > > index 6116752..e4d5e44 100644 > > --- a/glibc.spec > > +++ b/glibc.spec > > @@ -1571,6 +1571,10 @@ for lib in lib lib64; do > > set +x > > slbase=$(basename $sl) > > sltarget=$(basename $(readlink $sl)) > > + if test "$sltarget" = . ; then > > + # This is the lp64d symbolic link on riscv64, see above. > > + continue > > + fi > > if ! test -r usr/$lib/$sltarget; then > > echo "$sl: inferred $sltarget ($(readlink $sl)) missing" > > exit 1 > > > > We will have to fix this again (and wrap-find-debuginfo.sh and as well) > > once Fedora adopts the standard RISC-V paths. > > Shouldn't we adopt the normal Fedora paths instead? That's definitely a discussion object, but we need to check if this actually works. Basically RISCV doesn't comply with FHS, unless something changed. david > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > libguestfs lets you edit virtual machines. Supports shell scripting, > bindings from many languages. http://libguestfs.org > -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
On Thu, Feb 01, 2024 at 02:24:10PM +0100, Florian Weimer wrote: > * David Abdurachmanov: > > > Hi Florian, > > > > I was trying to build the latest glibc [0] in Fedora 40 for riscv64, > > but it failed. It seems to be related to your last commit. > > > > [..] > > + ln -s libBrokenLocale.so.1 usr/lib64/libBrokenLocale.so > > + for sl in `find $RPM_BUILD_ROOT/$pfx$lib -maxdepth 1 -type l` > > + set +x > > + ln -s . usr/lib64/lp64d > > ln: failed to create symbolic link 'usr/lib64/lp64d/.': File exists > > error: Bad exit status from /var/tmp/rpm-tmp.7qPZkS (%install) > > [..] > > > > Full log: > > http://fedora.riscv.rocks/kojifiles/work/tasks/9391/1599391/build.log > > Build info: http://fedora.riscv.rocks/koji/taskinfo?taskID=1599391 > > > > This is probably related to this: > > https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.spec#_1279 > > > > Cheers, > > david > > - - - > > [0] > > https://src.fedoraproject.org/rpms/glibc/c/0bd93c5697bc60e4f4a84f5b55c98f351883e689?branch=rawhide > > That refers to: > > %ifarch riscv64 > # RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. > # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: > # > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ > for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do > mkdir -p $d > (cd $d && ln -sf . lp64d) > done > %endif Although it was me who added this in 2018, I think it looks like a mess now. Why do we need this .../lp64d subdir for Fedora? > Please try this: > > diff --git a/glibc.spec b/glibc.spec > index 6116752..e4d5e44 100644 > --- a/glibc.spec > +++ b/glibc.spec > @@ -1571,6 +1571,10 @@ for lib in lib lib64; do > set +x > slbase=$(basename $sl) > sltarget=$(basename $(readlink $sl)) > + if test "$sltarget" = . ; then > + # This is the lp64d symbolic link on riscv64, see above. > + continue > + fi > if ! test -r usr/$lib/$sltarget; then > echo "$sl: inferred $sltarget ($(readlink $sl)) missing" > exit 1 > > We will have to fix this again (and wrap-find-debuginfo.sh and as well) > once Fedora adopts the standard RISC-V paths. Shouldn't we adopt the normal Fedora paths instead? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
* David Abdurachmanov: > Hi Florian, > > I was trying to build the latest glibc [0] in Fedora 40 for riscv64, > but it failed. It seems to be related to your last commit. > > [..] > + ln -s libBrokenLocale.so.1 usr/lib64/libBrokenLocale.so > + for sl in `find $RPM_BUILD_ROOT/$pfx$lib -maxdepth 1 -type l` > + set +x > + ln -s . usr/lib64/lp64d > ln: failed to create symbolic link 'usr/lib64/lp64d/.': File exists > error: Bad exit status from /var/tmp/rpm-tmp.7qPZkS (%install) > [..] > > Full log: > http://fedora.riscv.rocks/kojifiles/work/tasks/9391/1599391/build.log > Build info: http://fedora.riscv.rocks/koji/taskinfo?taskID=1599391 > > This is probably related to this: > https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.spec#_1279 > > Cheers, > david > - - - > [0] > https://src.fedoraproject.org/rpms/glibc/c/0bd93c5697bc60e4f4a84f5b55c98f351883e689?branch=rawhide That refers to: %ifarch riscv64 # RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do mkdir -p $d (cd $d && ln -sf . lp64d) done %endif Please try this: diff --git a/glibc.spec b/glibc.spec index 6116752..e4d5e44 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1571,6 +1571,10 @@ for lib in lib lib64; do set +x slbase=$(basename $sl) sltarget=$(basename $(readlink $sl)) + if test "$sltarget" = . ; then + # This is the lp64d symbolic link on riscv64, see above. + continue + fi if ! test -r usr/$lib/$sltarget; then echo "$sl: inferred $sltarget ($(readlink $sl)) missing" exit 1 We will have to fix this again (and wrap-find-debuginfo.sh and as well) once Fedora adopts the standard RISC-V paths. Thanks, Florian -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
Re: "noarch sysroot subpackages" commit breaks glibc compile on riscv64
[Adding Fedora devel] On Thu, Feb 01, 2024 at 02:29:41PM +0200, David Abdurachmanov wrote: > Hi Florian, > > I was trying to build the latest glibc [0] in Fedora 40 for riscv64, > but it failed. It seems to be related to your last commit. > > [..] > + ln -s libBrokenLocale.so.1 usr/lib64/libBrokenLocale.so > + for sl in `find $RPM_BUILD_ROOT/$pfx$lib -maxdepth 1 -type l` > + set +x > + ln -s . usr/lib64/lp64d > ln: failed to create symbolic link 'usr/lib64/lp64d/.': File exists > error: Bad exit status from /var/tmp/rpm-tmp.7qPZkS (%install) > [..] > > Full log: > http://fedora.riscv.rocks/kojifiles/work/tasks/9391/1599391/build.log > Build info: http://fedora.riscv.rocks/koji/taskinfo?taskID=1599391 > > This is probably related to this: > https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.spec#_1279 > > Cheers, > david > - - - > [0] > https://src.fedoraproject.org/rpms/glibc/c/0bd93c5697bc60e4f4a84f5b55c98f351883e689?branch=rawhide -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top -- ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue