| Summary: | *.pc.in files incorrectly specify Cflags/Libs | ||
|---|---|---|---|
| Product: | xorg | Reporter: | Mike A. Harris <mharris> |
| Component: | * Other | Assignee: | Xorg Project Team <xorg-team> |
| Status: | RESOLVED DUPLICATE | QA Contact: | |
| Severity: | normal | ||
| Priority: | high | ||
| Version: | 6.99.99.902 (7.0 RC2) | ||
| Hardware: | x86 (IA32) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Bug Depends on: | |||
| Bug Blocks: | 1690 | ||
|
Description
Mike A. Harris
2005-11-16 12:42:43 UTC
twm doesn't need Xau - it needs libXmu, which is specifying -lXau in it's x11.pc file (probably incorrectly). Bleah. I meant "in it's xmu.pc file" of course. (In reply to comment #1) > twm doesn't need Xau - it needs libXmu, which is specifying -lXau in it's > x11.pc file (probably incorrectly). Right, we spent some time investigating this tonight and came up with the same conclusion. The current modular *.pc.in files seem to be specifying Cflags/Libs lines that are the build dependencies of the library itself, rather than the Cflags/Libs flags than the runtime deps of the library. Here is x11.pc.in prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ xthreadlib=@XTHREADLIB@ Name: X11 Description: X Library Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lX11 @XPROTO_LIBS@ @LIBS@ Cflags: -I${includedir} @XPROTO_CFLAGS@ @XTHREAD_CFLAGS@ The last two lines should be: Libs: -L${libdir} -lX11 Cflags: -I${includedir} Every library, etc should be similar to this. This is just severely wrong.. anything that links to libXmu, automatically
gets linked to a tonne of libraries due to the broken .pc file:
[root@fc4i386 RPMS]# cat /usr/lib/pkgconfig/xmu.pc
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include
Name: Xmu
Description: Xmu Library
Version: 0.99.1
Libs: -L${libdir} -lXmu -lXt -lSM -lICE -lXext -lX11 -ldl -lXau
Cflags: -I${includedir}
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.