On Thu, 25 Jul 2013 18:35:35 -0600 (MDT), Jon Trulson wrote: > On Thu, 25 Jul 2013, Ulrich Wilkens wrote: > > > Hello, > > > > the last patches are very nice, but they have some problems on FreeBSD: > > > > The first one is simple (see attached patch): > > a type definition for time_t was missing. > > > > I've applied this... > > > Other problems with lib/DtHelp have significance only in dtinfo and I > > could solve them inside of dtinfo. > > > > The last nsgmls related problem is more complicated. The -fpermissive > > is needed on 32bit systems. On these systems size_t and unsigned int have > > the > > same size and therefore in parser_inst.m4 we have identical instantiations: > > __instantiate(Vector<size_t>) > > __instantiate(Vector<unsigned int>) > > The compiler doesn't like it and aborts. The -fpermissive prevented > > him to do so, but of course that's a bad solution. > > > > Agreed - fpermissive should be a last resort only. > > > But a good solution is difficult. 32bit systems only need one of the > > instantiations above and 64bit systems need both. I would suggest > > something like this: > > I think size_t is usually 32bits on 32b systems... > > > __instantiate(Vector<size_t>) > > #if defined (__LP64__) > > __instantiate(Vector<unsigned int>) > > #endif > > ... So I wonder if something like this would work: > > > __instantiate(Vector<size_t>) > #if (sizeof(size_t) != sizeof(unsigned int)) > __instantiate(Vector<unsigned int>) > #endif > > ...since we only need it if the two are different sized...?
I think this is wrong because sizeof(int) == sizeof(long) on 32bit (see below). The correct check should be "#if (size_t is typedef'd to unsigned int)", but that's not possible of course ... > > It covers many platforms like amd64, sparc, alpha, but not everything. I'm > > afraid that OpenBSD's powerpc port is not covered. > > I've found __powerpc64__ in the OpenBSD sources. Could that be a > > solution? I don't have ppc hardware and cannot test it. > > > > I think the above should work on all systems regardless of LP64 or not...? FWIW, I've recently tested CDE on OpenBSD/powerpc, and it worked without any of these patches, without -fpermissive. size_t is an unsigned long, not unsigned int there. powerpc64 is not supported by OpenBSD and will maybe never be. > > -- > Jon Trulson > > "I was not genomed to alter reality." > - Sonmi 451 > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > cdesktopenv-devel mailing list > cdesktopenv-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel > > ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ cdesktopenv-devel mailing list cdesktopenv-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel