[PATCH] xprint is broken in xserver git

Maarten Maathuis madman2003 at gmail.com
Tue Aug 21 06:49:13 PDT 2007


The function of the link flag --as-needed is to prevent unnecesary linking.

Example: A -> B -> C

Normally A would link to B and also depend on C, this is ofcource
unnecesary. In this situation however we do need to link to C, so this
must be done explicitly. This flag comes in handy when a library ABI
is changed, minimizing the amount of recompilations needed.

Error message:

x86_64-pc-linux-gnu-gcc -DHAVE_DIX_CONFIG_H -Wall -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
-Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN
-DHAS_STICKY_DIR_BIT -DDBUS_API_SUBJECT_TO_CHANGE
-I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/hal
-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I../../include
-I../../include -I../../Xext -I../../composite -I../../damageext
-I../../xfixes -I../../Xi -I../../mi -I../../miext/shadow
-I../../miext/damage -I../../render -I../../randr -I../../fb
-I/usr/include/freetype2 -I/usr/include/pixman-1 -DXPRINT
-DPRINT_ONLY_SERVER -D_XP_PRINT_SERVER_
-DXPRINTDIR=\"/usr/lib64/X11/xserver\" -DXPRASTERDDX -DXPPCLDDX
-DXPMONOPCLDDX -DXPPSDDX -DXFree86Server -march=k8 -Os -pipe -msse3
-Wl,-O1 -Wl,--as-needed -Wl,-z -Wl,lazy -o Xprt Xprt-attributes.o
Xprt-AttrValid.o Xprt-ddxInit.o Xprt-Init.o Xprt-mediaSizes.o
Xprt-Oid.o Xprt-spooler.o Xprt-Util.o Xprt-miinitext-wrapper.o
Xprt-dpmsstubs-wrapper.o Xprt-fbcmap_mi.o
-L/var/tmp/portage/x11-base/xorg-server-9999/work/xserver
../../dix/.libs/libdix.a ../../xkb/.libs/libxkb.a
../../xkb/.libs/libxkbstubs.a ../../config/libconfig.a
../../dbe/.libs/libdbe.a ../../XTrap/.libs/libxtrap.a
../../record/.libs/librecord.a ../../composite/.libs/libcomposite.a
../../randr/.libs/librandr.a ../../xfixes/.libs/libxfixes.a
../../damageext/.libs/libdamageext.a ../../Xi/.libs/libXi.a
../../GL/glx/.libs/libglx.a ../../GL/mesa/.libs/libGLcore.a -lpthread
../../miext/damage/.libs/libdamage.a ../../os/.libs/libcwrapper.a
../../os/.libs/libos.a /usr/lib64/libX11.so -ldl
/usr/lib64/libXfont.so /usr/lib64/libfreetype.so
/usr/lib64/libfontenc.so -lz /usr/lib64/libXdmcp.so
/usr/lib64/libXau.so /usr/lib64/libpixman-1.so ps/.libs/libps.a
raster/.libs/libraster.a pcl/.libs/libpcl.a pcl-mono/.libs/libpcl.a
../../fb/.libs/libfb.a ../../render/.libs/librender.a
../../mi/.libs/libmi.a ../../Xext/.libs/libXext.a -lm -lrt
../../config/libconfig.a(dbus-core.o): In function `teardown':
dbus-core.c:(.text+0x8a): undefined reference to `dbus_connection_unref'
../../config/libconfig.a(dbus-core.o): In function `wakeup_handler':
dbus-core.c:(.text+0x113): undefined reference to
`dbus_connection_read_write_dispatch'
dbus-core.c:(.text+0x11c): undefined reference to
`dbus_connection_get_dispatch_status'
../../config/libconfig.a(dbus-core.o): In function `reconnect_timer':
dbus-core.c:(.text+0x186): undefined reference to `dbus_error_init'
dbus-core.c:(.text+0x193): undefined reference to `dbus_bus_get'
dbus-core.c:(.text+0x1ab): undefined reference to `dbus_error_is_set'
dbus-core.c:(.text+0x1c1): undefined reference to
`dbus_connection_set_exit_on_disconnect'
dbus-core.c:(.text+0x1d2): undefined reference to `dbus_connection_get_unix_fd'
dbus-core.c:(.text+0x1fd): undefined reference to `dbus_connection_add_filter'
dbus-core.c:(.text+0x209): undefined reference to `dbus_error_free'
dbus-core.c:(.text+0x27c): undefined reference to `dbus_connection_unref'
dbus-core.c:(.text+0x28f): undefined reference to `dbus_error_free'
../../config/libconfig.a(dbus-core.o): In function `message_filter':
dbus-core.c:(.text+0x2bf): undefined reference to `dbus_message_is_signal'
../../config/libconfig.a(hal.o): In function `disconnect_hook':
hal.c:(.text+0x1e): undefined reference to `dbus_error_init'
hal.c:(.text+0x2a): undefined reference to `libhal_ctx_shutdown'
hal.c:(.text+0x33): undefined reference to `libhal_ctx_free'
hal.c:(.text+0x3b): undefined reference to `dbus_error_free'
../../config/libconfig.a(hal.o): In function `remove_device':
hal.c:(.text+0x68): undefined reference to `DeleteInputDeviceRequest'
../../config/libconfig.a(hal.o): In function `get_prop_string':
hal.c:(.text+0x19b): undefined reference to `libhal_device_get_property_string'
hal.c:(.text+0x1b6): undefined reference to `libhal_free_string'
../../config/libconfig.a(hal.o): In function `device_added':
hal.c:(.text+0x1e7): undefined reference to `dbus_error_init'
hal.c:(.text+0x1fa): undefined reference to `libhal_device_get_property_strlist'
hal.c:(.text+0x262): undefined reference to `libhal_free_string_array'
hal.c:(.text+0x383): undefined reference to `libhal_device_get_property_strlist'
hal.c:(.text+0x3f0): undefined reference to `libhal_free_string_array'
hal.c:(.text+0x41f): undefined reference to `libhal_free_string_array'
hal.c:(.text+0x555): undefined reference to `NewInputDeviceRequest'
hal.c:(.text+0x60d): undefined reference to `dbus_error_free'
../../config/libconfig.a(hal.o): In function `connect_hook':
hal.c:(.text+0x634): undefined reference to `dbus_error_init'
hal.c:(.text+0x640): undefined reference to `libhal_ctx_new'
hal.c:(.text+0x666): undefined reference to `libhal_ctx_set_dbus_connection'
hal.c:(.text+0x685): undefined reference to `libhal_ctx_init'
hal.c:(.text+0x6ad): undefined reference to `libhal_device_property_watch_all'
hal.c:(.text+0x6c2): undefined reference to `libhal_ctx_set_device_added'
hal.c:(.text+0x6d0): undefined reference to `libhal_ctx_set_device_removed'
hal.c:(.text+0x6e6): undefined reference to `libhal_find_device_by_capability'
hal.c:(.text+0x711): undefined reference to `libhal_free_string_array'
hal.c:(.text+0x719): undefined reference to `dbus_error_free'
hal.c:(.text+0x73c): undefined reference to `libhal_ctx_shutdown'
hal.c:(.text+0x745): undefined reference to `libhal_ctx_free'
hal.c:(.text+0x74d): undefined reference to `dbus_error_free'
../../fb/.libs/libfb.a(libfb_la-fbcopy.o): In function `fbCopyNtoN':
fbcopy.c:(.text+0xf11): undefined reference to `pixman_blt'
../../fb/.libs/libfb.a(libfb_la-fbwindow.o): In function `fbFillRegionSolid':
fbwindow.c:(.text+0x2e4): undefined reference to `pixman_fill'
../../fb/.libs/libfb.a(libfb_la-fbfill.o): In function `fbSolidBoxClipped':
fbfill.c:(.text+0x130): undefined reference to `pixman_fill'
../../fb/.libs/libfb.a(libfb_la-fbfill.o): In function `fbFill':
fbfill.c:(.text+0x2cc): undefined reference to `pixman_fill'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionDestroy':
miregion.c:(.text+0x1848): undefined reference to `pixman_region_fini'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionNotEmpty':
miregion.c:(.text+0x6d3): undefined reference to `pixman_region_not_empty'
../../mi/.libs/libmi.a(miregion.o): In function `miPointInRegion':
miregion.c:(.text+0x6d8): undefined reference to `pixman_region_contains_point'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionReset':
miregion.c:(.text+0x6dd): undefined reference to `pixman_region_reset'
../../mi/.libs/libmi.a(miregion.o): In function `miTranslateRegion':
miregion.c:(.text+0x6e2): undefined reference to `pixman_region_translate'
../../mi/.libs/libmi.a(miregion.o): In function `miRectIn':
miregion.c:(.text+0x6e7): undefined reference to
`pixman_region_contains_rectangle'
../../mi/.libs/libmi.a(miregion.o): In function `miInverse':
miregion.c:(.text+0x6ec): undefined reference to `pixman_region_inverse'
../../mi/.libs/libmi.a(miregion.o): In function `miSubtract':
miregion.c:(.text+0x6f1): undefined reference to `pixman_region_subtract'
../../mi/.libs/libmi.a(miregion.o): In function `miUnion':
miregion.c:(.text+0x1830): undefined reference to `pixman_region_union'
../../mi/.libs/libmi.a(miregion.o): In function `miIntersect':
miregion.c:(.text+0x1835): undefined reference to `pixman_region_intersect'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionCopy':
miregion.c:(.text+0x183a): undefined reference to `pixman_region_copy'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionUninit':
miregion.c:(.text+0x183f): undefined reference to `pixman_region_fini'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionInit':
miregion.c:(.text+0x1869): undefined reference to
`pixman_region_init_with_extents'
miregion.c:(.text+0x186e): undefined reference to `pixman_region_init'
../../mi/.libs/libmi.a(miregion.o): In function `miRegionEqual':
miregion.c:(.text+0x1aa7): undefined reference to `pixman_region_equal'
../../mi/.libs/libmi.a(miregion.o): In function `InitRegions':
miregion.c:(.text+0x1b5b): undefined reference to
`pixman_region_set_static_pointers'
collect2: ld returned 1 exit status
make[3]: *** [Xprt] Error 1
make[3]: Leaving directory
`/var/tmp/portage/x11-base/xorg-server-9999/work/xserver/hw/xprint'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/var/tmp/portage/x11-base/xorg-server-9999/work/xserver/hw/xprint'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/x11-base/xorg-server-9999/work/xserver/hw'
make: *** [all-recursive] Error 1



On 8/21/07, Drew Parsons <dparsons at debian.org> wrote:
> On Mon, 2007-08-20 at 12:49 +0200, Maarten Maathuis wrote:
> > Yes, i did.
> >
> > As a sidenote, i use the linker flag --as-needed, which could explain
> > the need for explicit linking. I do not know however if this is the
> > cause.
> >
>
> I think --as-needed would have the opposite effect: not linking in
> hal/dbus even when they're listed on the command line, if they're not in
> fact used.
>
> Rather, I think I've identified why I'm not seeing the build problem.
> Must be I don't have the hal/dbus development libraries installed,
> because in my configure step I get:
>
> checking for PIXMAN... yes
> checking for DBUS... no
> checking for HAL... no
> checking for XLIB... yes
>
> So my build is neglecting hal/dbus altogether (my Xorg xserver will be
> missing it too, which of course is not what we want).
>
> Your patch adds some dummy hal initialisation functions for Xprint. A
> cleaner solution, if we can manage it, is to make sure the HAL/DBUS
> flags are not passed down to hw/xprint.  However I suspect that will not
> be straightforward, since Xprint will presumeably be linking in
> sublibraries which contain the hal support (hal/dbus is not relevant to
> Xprt directly).
>
> Can you please post the actual error message from your build?
>
> Drew
>
>



More information about the xorg mailing list