[M3devel] Umman.off_t

Jay jayk123 at hotmail.com
Sat Apr 19 01:58:41 CEST 2008


Imho constant integer expressions should be promoted silently. But that's just me.

Try one of these:
ORD (0, off_t)
VAL  (0, off_t)
ORD (off_t, 0)
VAL  (off_t, 0)

  - Jay



----------------------------------------
> Date: Sat, 19 Apr 2008 01:43:45 +0200
> From: neels at elego.de
> To: m3devel at elego.de
> Subject: [M3devel] Umman.off_t
> 
> Hi,
> 
> I am having problems deploying the suplib on FreeBSD (FreeBSD
> new.elego.de 6.2-RELEASE-p3), using the latest cm3 snapshot
> (cm3-src-all-d5.7.0-2008-04-16-14-07-05.tgz).
> 
> A type mismatch error is encountered at the last parameter of the call
> 
>         addr := Umman.mmap(NIL, StatBuf.GetStatSize(statbuf),
> Umman.PROT_READ,
>           Umman.MAP_SHARED, fd, 0);
> 
> , the zero, that is. The parameter is called "off" and of type off_t.
> 
>   cm3/m3-libs/m3core/src/unix/freebsd-4/Umman.i3
> 
> declares the following about off_t:
> 
> 
> FROM Utypes IMPORT caddr_t, size_t, off_t;
> 
> 
> PROCEDURE mmap (addr: caddr_t; len: size_t; prot,flags,fd: int; off: off_t)
>   : caddr_t;
> 
> 
> and Utypes.i3 adds:
> 
> 
> FROM Ctypes IMPORT
>         long, unsigned_long, int, unsigned_int, short, unsigned_short,
>         char, unsigned_char, long_long;
> 
> TYPE
>   int64_t   = long_long;
> 
>   off_t        = int64_t;
> 
> 
> It turns out that using 0L instead of just 0 solves the compilation
> error on FreeBSD.
> 
> Yes, but on linux-libc6, Utypes.i3 says something different, and the 0L
> in turn causes a type mismatch there. So this is a dilemma situation
> where the porting between linux and FreeBSD involves source code editing
> - certainly not good.
> 
> linux-libc6/Utypes.i3:
> 
> FROM Ctypes IMPORT
>         long, ...
>   off_t        = long;
> 
> 
> Any help?
> 
> Thanks!
> 
> -- 
> Neels Hofmeyr -- elego Software Solutions GmbH
>                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
> phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
>    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
> 


More information about the M3devel mailing list