Hi Orion,

Glad objdump helped -- the second approach I meant to write objcopy, which
actually strips the symbols.

Regarding how the symbols might show up in the library automatically,
here's how it might happen.  When I took a look at one of the build.log
files from koji at the following link:

https://kojipkgs.fedoraproject.org//packages/Lmod/8.7.25/2.fc38/data/logs/x86_64/build.log

I see your CFLAGS variable contains the -g flag, which forces debug symbols
to be included.  For example, for the tcl2lua it has it as part of the
build (which contains the -g flag):

make[1]: Entering directory '/builddir/build/BUILD/Lmod-8.7.25/pkgs/tcl2lua'
gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches
-pipe -Wall -Werror=format-security
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -DLUA_COMPAT_MODULE
-fPIC -I/usr/include -I/usr/include/   -c -o tcl2lua.o tcl2lua.c

The way this seems to happen could be as follows:

1) I took a look at the source code from here:

https://kojipkgs.fedoraproject.org//packages/Lmod/8.7.25/2.fc38/src/Lmod-8.7.25-2.fc38.src.rpm

When I looked at the Makefile for tcl2lua under Lmod-8.7.25/pkgs/tcl2lua,
it inherits it from a previous file:

override CFLAGS   := $(CFLAGS) -DLUA_COMPAT_MODULE -fPIC $(LUA_INC)
$(TCL_INCLUDE)

2) When I traverse the inheritance, it seems to come from the configure
script Lmod-8.7.25/configure:

I see a bunch of CFLAGS="-g there.

If I then look at the build.log it seems to be run at the beginning of the
build:

+ ./configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run
--sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info
--prefix=/usr/share PS=/usr/bin/ps
configure: WARNING: unrecognized options: --disable-dependency-tracking

I then looked at the Lmod.spec file, and I see this, which confirms it:

%build
%if 0%{?rhel} && 0%{?rhel} <= 6
%configure --prefix=%{_datadir} PS=/bin/ps
%else
%configure --prefix=%{_datadir} PS=/usr/bin/ps
%endif
%make_build

So debug symbols seem to get triggered through the configure script.

Hope it helps,
Paul

On Fri, Jun 2, 2023 at 7:42 PM Orion Poplawski <or...@nwra.com> wrote:

> On 6/1/23 23:00, Paul Grosu wrote:
> > Hi Orion,
> >
> > There are two ways to remove the debugging symbols:
> >
> > 1) strip --strip-debug your_library.so
> >
> > 2) objcopy --strip-debug your_library.so
> >
> > Below is an example of both approaches:
> >
> > 1) Method using strip:
> >
> > paul$ objdump --syms libfoo.so | grep debug
> > 0000000000000000 l    d  .debug_aranges 0000000000000000
> >   .debug_aranges
> > 0000000000000000 l    d  .debug_info    0000000000000000
> >   .debug_info
> > 0000000000000000 l    d  .debug_abbrev  0000000000000000
> >   .debug_abbrev
> > 0000000000000000 l    d  .debug_line    0000000000000000
> >   .debug_line
> > 0000000000000000 l    d  .debug_str     0000000000000000
> >   .debug_str
> > paul$ strip --strip-debug libfoo.so
> > paul$ objdump --syms libfoo.so | grep debug
> > paul$
> >
> > 2) Method using objdump:
> >
> > paul$ objdump --syms libfoo.so | grep debug
> > 0000000000000000 l    d  .debug_aranges 0000000000000000
> >   .debug_aranges
> > 0000000000000000 l    d  .debug_info    0000000000000000
> >   .debug_info
> > 0000000000000000 l    d  .debug_abbrev  0000000000000000
> >   .debug_abbrev
> > 0000000000000000 l    d  .debug_line    0000000000000000
> >   .debug_line
> > 0000000000000000 l    d  .debug_str     0000000000000000
> >   .debug_str
> > paul$ objcopy --strip-debug libfoo.so
> > paul$ objdump --syms libfoo.so | grep debug
> > paul$
> >
> > Are there other symbols you are looking to strip?
> >
> > Hope it helps,
> > Paul
>
> So I'm afraid my subject isn't the best - I'm really wondering why the
> library isn't being stripped automatically and debug info collected by
> RPM as I would expect.
>
> But your answer pointed me towards using objdump --syms to verify that
> the debug info has been removed, not the output of "file".  Thanks!
>
> >
> > On Fri, Jun 2, 2023 at 12:11 AM Orion Poplawski <or...@nwra.com
> > <mailto:or...@nwra.com>> wrote:
> >
> >     I'm trying to resolve this packaging issue with Lmod:
> >
> >
> https://artifacts.dev.testing-farm.io/4d7bee41-8d21-42fb-8c57-e5ffbf58119f/
> <
> https://artifacts.dev.testing-farm.io/4d7bee41-8d21-42fb-8c57-e5ffbf58119f/
> >
> >
> >     debuginfo
> >     BAD /usr/share/lmod/8.7.25/lib/tcl2lua.so in Lmod-8.7.25-2.fc38 on
> i686
> >     contains debugging symbols
> >
> >     I've dealt with a couple of issues here:
> >
> >     https://src.fedoraproject.org/rpms/Lmod/pull-request/2
> >     <https://src.fedoraproject.org/rpms/Lmod/pull-request/2>
> >
> >     but despite all of my attempts the library does not appear to get
> >     stripped.
> >
> >     In fact:
> >
> >     ]$ strip -g
> >
>  
> /home/orion/BUILDROOT/Lmod-8.7.25-3.fc39.x86_64/usr/lib64/lmod/tcl2lua.so.1.0.1
> >
> >     $ file
> >
>  
> /home/orion/BUILDROOT/Lmod-8.7.25-3.fc39.x86_64/usr/lib64/lmod/tcl2lua.so.1.0.1
> >
>  
> /home/orion/BUILDROOT/Lmod-8.7.25-3.fc39.x86_64/usr/lib64/lmod/tcl2lua.so.1.0.1:
> >     ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
> >     linked, BuildID[sha1]=aa1ea44979190d0cf530d350f8151ffafeab0f36, not
> >     stripped
> >
> >     ?
> >
> >
> >     --
> >     Orion Poplawski
> >     he/him/his  - surely the least important thing about me
> >     IT Systems Manager                         720-772-5637
> >     NWRA, Boulder/CoRA Office             FAX: 303-415-9702
> >     3380 Mitchell Lane or...@nwra.com <mailto:or...@nwra.com>
> >     Boulder, CO 80301 https://www.nwra.com/ <https://www.nwra.com/>
> >     _______________________________________________
> >     devel mailing list -- devel@lists.fedoraproject.org
> >     <mailto:devel@lists.fedoraproject.org>
> >     To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> >     <mailto:devel-le...@lists.fedoraproject.org>
> >     Fedora Code of Conduct:
> >     https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> >     <https://docs.fedoraproject.org/en-US/project/code-of-conduct/>
> >     List Guidelines:
> >     https://fedoraproject.org/wiki/Mailing_list_guidelines
> >     <https://fedoraproject.org/wiki/Mailing_list_guidelines>
> >     List Archives:
> >
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> <
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> >
> >     Do not reply to spam, report it:
> >     https://pagure.io/fedora-infrastructure/new_issue
> >     <https://pagure.io/fedora-infrastructure/new_issue>
> >
> >
> > _______________________________________________
> > 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
>
> --
> Orion Poplawski
> he/him/his  - surely the least important thing about me
> IT Systems Manager                         720-772-5637
> NWRA, Boulder/CoRA Office             FAX: 303-415-9702
> 3380 Mitchell Lane                       or...@nwra.com
> Boulder, CO 80301                 https://www.nwra.com/
>
> _______________________________________________
> 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
>
_______________________________________________
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

Reply via email to