Unable to compile VCHIQ
Alie Tan
alie at affle.com
Fri Apr 12 07:09:27 UTC 2013
On Mon, Mar 25, 2013 at 6:19 AM, Tim Kientzle <tim at kientzle.com> wrote:
> > From: Tim Kientzle <tim at kientzle.com>
> > Sender: owner-freebsd-arm at freebsd.orgDate: Wed, 20 Mar 2013 23:01:26
> > To: Oleksandr Tymoshenko<gonzo at bluezbox.com>
> > Cc: <freebsd-arm at freebsd.org>
> > Subject: Re: Unable to compile VCHIQ
> >
> >
> > On Mar 15, 2013, at 1:31 PM, Oleksandr Tymoshenko wrote:
> >
> >>> cc -O3 -pipe -DVCOS_VERIFY_BKPTS=1 -DUSE_VCHIQ_ARM
> >>> -D__VCCOREVER__=0x04000000 -O3 -fno-strict-aliasing -funroll-loops
> -pipe
> >>> -ftree-vectorize -D_KERNEL -DKLD_MODULE -nostdinc
> >>> -I/usr/src/vc/vchiq-freebsd/interface -I. -I@ -I@/contrib/altq
> >>> -finline-limit=8000 --param inline-unit-growth=100 --param
> >>> large-function-growth=1000 -fno-common -ffreestanding
> -std=iso9899:1999
> >>> -c /usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_2835_arm.c
> >>> In file included from
> >>> /usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_2835_arm.c:65:
> >>> @/vm/vm_pager.h: In function 'vm_pager_get_pages':
> >>> @/vm/vm_pager.h:127: warning: implicit declaration of function
> 'rw_assert'
> >>> @/vm/vm_pager.h:127: error: 'RA_WLOCKED' undeclared (first use in this
> >>> function)
> >>> @/vm/vm_pager.h:127: error: (Each undeclared identifier is reported
> only
> >>> once
> >>> @/vm/vm_pager.h:127: error: for each function it appears in.)
> >>> @/vm/vm_pager.h: In function 'vm_pager_put_pages':
> >>> @/vm/vm_pager.h:144: error: 'RA_WLOCKED' undeclared (first use in this
> >>> function)
> >>> @/vm/vm_pager.h: In function 'vm_pager_has_page':
> >>> @/vm/vm_pager.h:168: error: 'RA_WLOCKED' undeclared (first use in this
> >>> function)
> >>> @/vm/vm_pager.h: In function 'vm_pager_page_unswapped':
> >>> @/vm/vm_pager.h:191: error: 'RA_WLOCKED' undeclared (first use in this
> >>> function)
> >>> *** [vchiq_2835_arm.o] Error code 1
> >>>
> >>> Stop in /usr/src/vc/vchiq-freebsd.
> >>>
> >>>
> >>> Anyone got idea how to solve the issue?
> >>>
> >>
> >> It seems you're trying to build vchiq against your host sources which
> is wrong. You need
> >> to use cross-compilation environment for this.
> >
> > I'm seeing this now, too, and I've checked carefully: I'm
> > definitely building inside the "buildworld" cross environment.
> >
> > It looks like RA_WLOCKED is only defined if INVARIANTS is
> > active (sys/sys/rwlock.h).
>
> The attached patch to vchiq fixes it for me.
>
> Cheers,
>
> Tim
>
>
> i am getting different error now:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:97:33: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile uint32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
return i + atomic_fetchadd_int(v, i);
^
./machine/atomic.h:333:39: note: passing argument to parameter 'p' here
atomic_fetchadd_32(volatile uint32_t *p, uint32_t val)
^
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:103:29: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile uint32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
return atomic_fetchadd_int(v, -i) - i;
^
./machine/atomic.h:333:39: note: passing argument to parameter 'p' here
atomic_fetchadd_32(volatile uint32_t *p, uint32_t val)
^
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:109:28: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile u_int32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
if (atomic_cmpset_rel_int(v, oldv, newv))
^
./machine/atomic.h:248:42: note: passing argument to parameter 'p' here
atomic_cmpset_rel_32(volatile u_int32_t *p, volatile u_int32_t cmpval,
volatile u_int32_t newval)
^
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:120:34: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile u_int32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
return atomic_readandclear_int(v);
^
./machine/atomic.h:348:44: note: passing argument to parameter 'p' here
atomic_readandclear_32(volatile u_int32_t *p)
^
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:123:31: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile uint32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
oldv = atomic_load_acq_int(v);
^
./machine/atomic.h:363:39: note: passing argument to parameter 'p' here
atomic_load_acq_32(volatile uint32_t *p)
^
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.c:34:
In file included from
/usr/src/vc/vchiq-freebsd/interface/vchiq_arm/vchiq_core.h:44:
./interface/compat/vchi_bsd.h:124:35: error: passing 'atomic_t *' (aka
'volatile int *') to parameter of type 'volatile u_int32_t *'
(aka 'volatile unsigned int *') converts between pointers to integer
types with different sign [-Werror,-Wpointer-sign]
} while (!atomic_cmpset_rel_int(v, oldv, newv));
^
./machine/atomic.h:248:42: note: passing argument to parameter 'p' here
atomic_cmpset_rel_32(volatile u_int32_t *p, volatile u_int32_t cmpval,
volatile u_int32_t newval)
^
6 errors generated.
*** [vchiq_core.o] Error code 1
Stop in /usr/src/vc/vchiq-freebsd.
Regards,
Alie T
More information about the freebsd-arm
mailing list