Re: [Dps-devel] Static XFree86 w/DPS
Status: Inactive
Brought to you by:
jch
From: Kevin B. <Co...@co...> - 2001-01-23 02:55:36
|
Hi Juliusz, I've gotten a clean link with the static version of DPS when building it with a loader set of imake rules, but I'm still having a little trouble with the build on the DPS side when I try to build it with the static XFree86 tree. Do you have some fixes for this? For example, the first failure I see is in the dpsi directory with: make[1]: Entering directory `/usr/local/src/xc-4_stat_dps/xc/lib/dpse/dpsi' rm -f gp_unifs.o gcc -c -O2 -fno-strength-reduce -ansi -pedantic -Wall -Wpointer-arith -I. -I.. -I/usr/local/src/xc-4_stat_dps/xc/programs/Xserver/include -I/usr/local/src/xc-4_stat_dps/xc/include -I/usr/local/src/xc-4_stat_dps/xc/programs/Xserver/mi -I/usr/local/src/xc-4_stat_dps/xc/include/extensions -I/usr/local/src/xc-4_stat_dps/xc/include/fonts -I/usr/local/src/xc-4_stat_dps/xc/programs/Xserver/hw/xfree86 -I/usr/local/src/xc-4_stat_dps/xc/programs/Xserver/hw/xfree86/common -I/usr/local/src/xc-4_stat_dps/xc/programs/Xserver/hw/xfree86/os-support -I../../.. -I../../../exports/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DSHAPE -DXINPUT -DXKB -DLBX -DXAPPGROUP -DXCSECURITY -DTOGCUP -DXF86BIGFONT -DDPMSExtension -DPIXPRIV -DPANORAMIX -DDPSEXT -DRENDER -DGCCUSESGAS -DAVOID_GLYPHBLT -DPIXPRIV -DSINGLEDEPTH -DXFreeXDGA -DXvExtension -DXFree86Server -DXF86VIDMODE -DSMART_SCHEDULE -DBUILDDEBUG -DX_BYTE_ORDER=X_LITTLE_ENDIAN -DNDEBUG -DFUNCPROTO=15 -DNARROWPROTO -DGS_LIB_DEFAULT='"/usr/X11R6/lib/X11/ghostscript/6.01/lib:/usr/share/ghostscript/fonts"' gp_unifs.c (snipped warnings...) gp_unifs.c: At top level: gp_unifs.c:99: parse error before `DIR' gp_unifs.c:99: warning: no semicolon at end of struct or union gp_unifs.c:100: warning: ANSI C does not allow extra `;' outside of a function gp_unifs.c:103: dereferencing pointer to incomplete type gp_unifs.c:103: initializer element is not constant gp_unifs.c:103: (near initialization for `dirstack_enum_ptrs[0].offset') gp_unifs.c:103: sizeof applied to an incomplete type gp_unifs.c:106: parse error before `DIR' gp_unifs.c:106: warning: no semicolon at end of struct or union gp_unifs.c:116: parse error before `}' gp_unifs.c:116: warning: ANSI C does not allow extra `;' outside of a function gp_unifs.c:118: dereferencing pointer to incomplete type gp_unifs.c:118: initializer element is not constant gp_unifs.c:118: (near initialization for `file_enum_enum_ptrs[0].offset') gp_unifs.c:118: dereferencing pointer to incomplete type gp_unifs.c:118: initializer element is not constant gp_unifs.c:118: (near initialization for `file_enum_enum_ptrs[1].offset') gp_unifs.c:118: dereferencing pointer to incomplete type gp_unifs.c:118: initializer element is not constant gp_unifs.c:118: (near initialization for `file_enum_enum_ptrs[2].offset') gp_unifs.c:118: sizeof applied to an incomplete type gp_unifs.c: In function `popdir': gp_unifs.c:159: dereferencing pointer to incomplete type (more of this ...) Have you already tackled this or do I have something wrong in my setup? You mentioned earlier having to build 'inside of the XFree86' tree but I don't really see any difference. I tried the following: copy the directory containing the dps-0.0.6 (and the dpsi) directory into a directory in xc/lib Then I still needed to run 'xmkmf -a', but to get it to recognize the local imake setup, I needed to use 'xmkmf -a ../..'. I then try a 'make', but I see the compile failure above. What have you been doing? Thanks, Kevin Kevin Brosius wrote: > > > Juliusz Chroboczek wrote: > > > > KB> It took me a little while to get a server with static DPS linked in, and > > KB> I know Juliusz mentioned having it working... I had to make a library > > KB> with all the libdps and libdpsi code in one library to get it to link > > KB> cleanly into XFree86. > > > > Yes, this is almost exactly how I did it (except that I created a > > single .o from libdps.a and libdpsi.a using ld -r). > > > > I was debating different ways of handling this. At the moment I've > built dps-0.0.6 outside of my X tree and it doesn't see the LoaderServer > flag in the Imakefiles, so I was considering building two versions, > maybe by adding another directory, something like libxstat. And > building a single library in that new directory. Or just fix up the dps > makefiles so that it builds one or the other (can we make the static > library name something like libdpse so it's not confused with the libdps > and libdpstk used for clients? Or is that just me?) > > > KB> I also had to make a bunch of makefile changes to the XFree86 tree to > > KB> link it in. Juliusz, are you planning on submitting some static build > > KB> changes for XFree86, or are you interesting in seeing (or having me > > KB> submit) mine? > > > > I'm not well-versed in Imake magic, and the dps build process is a > > nasty hack. If you have any idea about how to clean it up, I'll be > > very glad to include any changes of yours. > > > > I'm not an expert either... I modeled the XFree86 changes after some of > Keith's changes for freetype2, since he was linking in an externally > built library. I set it up to let us add a directory path to the > dps-0.0.6 directory in host.def if we want to statically link in dps, > else it doesn't link it. You'd still need to pre-compile dps, but it > would not have to be in the XFree86 tree. > > > I'm planning to make a new release with my latest changes in a few > > weeks (sorry, no time right now). I'll be glad to include your > > changes in it. > > > > Juliusz > > > > Okay. I'm open to suggestions about which libraries to build by > default. If nobody has a preference then I'll pick one and put together > a patch. I'll have a little time this week and should have a > preliminary patch available sometime this weekend. > > -- > Kevin |