On Tue, Apr 6, 2010 at 10:08 AM, Ruediger Oertel <[email protected]> wrote: > On Tuesday 06 April 2010 18:52:16 Dan Nicholson wrote: >> On Tue, Apr 6, 2010 at 8:41 AM, Ruediger Oertel <[email protected]> wrote: >> > On Tuesday 06 April 2010 16:25:53 Dan Nicholson wrote: >> >> On Tue, Apr 6, 2010 at 6:45 AM, Dan Nicholson <[email protected]> wrote: >> >> > On Mon, Apr 5, 2010 at 4:36 PM, Ruediger Oertel <[email protected]> wrote: >> >> >> Hi, >> >> >> >> >> >> commit e1165632bdfbd720889ed1adf5f7ab338032c0ee >> >> >> has added a call to xf86CheckBoolOption to Layout.c but this function >> >> >> (obviously) >> >> >> does not end up in libxf86config since it's not in .../parser but in >> >> >> .../common/xf86Option.c >> >> >> >> >> >> so linking against libxf86config (if installed as possible via >> >> >> configure --enable-install-libxf86config) >> >> >> will end up with: undefined symbol: xf86CheckBoolOption >> >> >> >> >> >> I just can't come up with a clean idea how to solve this ... >> >> > >> >> > I think the "cleanest" way would be to move a lot of xf86Option.c >> >> > under parser/. It's really about parsing Options anyway, and half the >> >> > implementations just wrap code from parser/Flags.c. So, moving >> >> > xf86Opt.h and xf86Option.c under parser/ would seem to be the easiest. >> >> > >> >> > Another alternative is to move the action of automatically adding the >> >> > InputDevices under the ServerLayout to xf86Config.c like the video >> >> > config. It's a little cleaner to put it together immediately during >> >> > the parsing, but you could assemble it later. >> >> >> >> Another option is just to do a local hack in parser/Layout.c to >> >> emulate xf86CheckBoolOption. Many of the necessary components are >> >> already under parser/. >> > >> > could it be as simple as this ? >> > >> > --- hw/xfree86/parser/Layout.c >> > +++ hw/xfree86/parser/Layout.c >> > @@ -449,7 +449,10 @@ >> > /* add all AutoServerLayout devices to the server layout */ >> > while (input) >> > { >> > - if (xf86CheckBoolOption(input->inp_option_lst, "AutoServerLayout", >> > FALSE)) >> > + Bool asl_value = FALSE; >> > + char *s = xf86findOptionValue(input->inp_option_lst >> > ,"AutoServerLayout"); >> > + Bool asl_found = xf86getBoolValue(&asl_value, s); >> > + if (asl_found == TRUE && asl_value == TRUE) >> > { >> > XF86ConfInputrefPtr iref = layout->lay_input_lst; >> >> Yeah, that looks right. A comment explaining why CheckBoolOption is >> not being used would be nice. Long term, it might be better to move >> xf86Option.c under parser anyway since there's really no reason to >> keep that API out of the parser. I had to refactor xf86getBoolValue >> into parser/ when creating InputClass for this same reason and I can >> see the situation coming up again. > > well, I already found the next one: using xstrtokenize which comes from > $topdir/os ... > I'll come back when I have a complete list.
You could add os/libos.la to libxf86config_a_LIBADD since it's a convenience library. -- Dan _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
