On Sat, Jul 7, 2018 at 11:27 AM Matthew Miller <mat...@fedoraproject.org>
wrote:

> On Tue, Jul 03, 2018 at 10:21:42AM +0200, Jan Kurik wrote:
> > The use of the "--as-needed" flag allows the linker to avoid linking
> > extra libraries in a binary. This not only improves startup times (as
> > the loader does not have to load all the libraries for every step) but
> > might avoid the full initialization of big frameworks.
>
> This might reduce auto-generated dependencies, too, right? Generally
> that's a good thing, but of course there's always the off chance that
> something that someone expects to be there because it was always pulled
> into an install by a dep now won't be....
>

Yes, RPM generates dependencies based on what binary is linked against.

With spec below, change produces this result:
⋊> ~/r/SPECS rpm -qpR
/home/brain/rpmbuild/RPMS/x86_64/hello-1-1.fc29.no_as_needed.x86_64.rpm
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
libfribidi.so.0()(64bit)
libgdk-3.so.0()(64bit)
libgdk_pixbuf-2.0.so.0()(64bit)
libgio-2.0.so.0()(64bit)
libglib-2.0.so.0()(64bit)
libgobject-2.0.so.0()(64bit)
libgtk-3.so.0()(64bit)
libpango-1.0.so.0()(64bit)
libpangocairo-1.0.so.0()(64bit)
libpthread.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)

⋊> ~/r/SPECS rpm -qpR
/home/brain/rpmbuild/RPMS/x86_64/hello-1-1.fc29.as_needed.x86_64.rpm
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libgtk-3.so.0()(64bit)
libpthread.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)

And here is the spec:
Name:           hello
Version:        1
Release:        1%{?dist}
Summary:        Hello

License:        Public Domain
URL:            https://fedoraproject.org

BuildRequires:  gcc
BuildRequires:  pkgconfig(gtk+-3.0)

%description
%{summary}.

%prep
%setup -c -T
cat > hello.c << EOF
#include <stdio.h>
#include <gtk/gtk.h>
int
main (int   argc,
      char *argv[])
{
  gtk_init(&argc, &argv);

  printf("Hello!\n");

  return 0;
}
EOF

%build
gcc %{build_cflags} $(pkg-config --cflags gtk+-3.0) hello.c -o hello
%{build_ldflags} $(pkg-config --libs gtk+-3.0)

%install
install -Dpm0755 -t %{buildroot}%{_bindir} hello

%files
%{_bindir}/hello

%changelog



> --
> Matthew Miller
> <mat...@fedoraproject.org>
> Fedora Project Leader
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/2YS4DBHOHVWN4IUPQ3VLXYNAUOYAJ2FR/
>
-- 

-Igor Gnatenko
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/IFCPR574TD4DKJNRMPKUOVS6ZYRBMVXL/

Reply via email to