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

Reply via email to