Bug 338051 - Prelinking a2ps prints a warning
Summary: Prelinking a2ps prints a warning
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: a2ps
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Tim Waugh
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F9Target
TreeView+ depends on / blocked
 
Reported: 2007-10-18 14:39 UTC by Daniel Qarras
Modified: 2008-02-25 14:22 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-02-25 14:22:29 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Daniel Qarras 2007-10-18 14:39:14 UTC
When prelinking /usr/lib/liba2ps.so.1.0.0 from a2ps-4.13b-69.fc8 a warning is
displayed:

Prelinking /usr/lib/liba2ps.so.1.0.0
prelink: Warning: /usr/lib/liba2ps.so.1 has undefined non-weak symbols

Comment 1 Tim Waugh 2008-02-12 17:54:53 UTC
'ldd -d' shows that this is because of 'program_name', but I can't work out how
to fix this.  It doesn't seem to be harmful.

Comment 2 Daniel Qarras 2008-02-16 15:11:17 UTC
Well, I agree that this is not fatal but see Jakub's comment in Bug 330821:

This is not an error, just a warning.  There are legitimate cases where having
undefined symbols in
ldd -d -r .../lib*so*
is ok and one of them is if the library is not generally dlopenable, but relies
on the binary to satisfy those symbols.

On the other side, if the symbols are provided by some shared library, usually
it is just an on unintentional omission on the packager's part, which is bad
for multiple reasons:
1) if the symbols are versioned in the library where they are defined, the
   library with undefined non-weak symbols might use wrong versions of those 
   symbols
2) in prelink it causes unnecessary prelink conflicts which need to be resolved
   at runtime
3) if you e.g. dlopen that library and don't know you need the other library
   as well, the dlopen will likely fail

I'm reopening for reconsideration after providing this background info but I
won't protest if you still feel like closing this one.

Thanks.

Comment 3 Tim Waugh 2008-02-25 14:22:29 UTC
program_name is indeed meant to be provided by the binary that links to liba2ps.

error.c:
    81  /* The calling program should define program_name and set it to the
    82     name of the executing program.  */
    83  extern char *program_name;

Thanks for the background information.


Note You need to log in before you can comment on or make changes to this bug.