2013年8月14日水曜日

FreeBSD CURRENT on RapsberryPi で webcamd をビルドする

RapsberryPi 用 camera board のテストをするために、とりあえず webcamd を ports から入れてみたときの作業メモです。

個人的な感触ですが、RapsberryPi で ports をビルドしたい場合、RapsberryPi では ports tree の取得にかなり時間がかかるので、イメージを作る段階で併せて入れておく方が何かと便利です。

イメージ作成時に入れなかった場合は、svn で ports tree を取得するよりも、portsnap を使用する方が、ファイルが壊れるなどのトラブルが発生しにくい気がします。

portsnap を使用して、ports tree を取得する初回の手順は、以下の通りです。

# portsnap fetch
# portsnap extract
# cd /usr/ports
# make fetchindex

2回目以降は、こちらになります。

# cd /usr/ports
# portsnap fetch
# portsnap update
# make fetchindex

ここから、webcamd のビルドに移ります。

# cd /usr/ports/multimedia/webcamd/
# make config-recursive
# make install clean

これで何もエラーも起きずに最後までたどり着ければいいのですが、わたしは以下の3つの ports でエラー等が発生しましたので、わたしの行った回避方法を書きます。

(1) security/libgcrypt

エラーメッセージ:

===>  Building for libgcrypt-1.5.2
make  all-recursive
Making all in compat
Making all in mpi
/bin/sh /usr/local/bin/libtool --tag=CC    --mode=compile cc -DHAVE_CONFIG_H -I. -I..   -I../src -I../src  -I/usr/local/include -O -pipe -std=gnu89 -fvisibility=hidden -Wall -MT mpih-div.lo -MD -MP -MF .deps/mpih-div.Tpo -c -o mpih-div.lo mpih-div.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I.. -I../src -I../src -I/usr/local/include -O -pipe -std=gnu89 -fvisibility=hidden -Wall -MT mpih-div.lo -MD -MP -MF .deps/mpih-div.Tpo -c mpih-div.c  -fPIC -DPIC -o .libs/mpih-div.o
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:13: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
./longlong.h:230:25: note: expanded from macro 'umul_ppmm'
                   : "=&r" ((USItype)(xh)),                             
                                      ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:17: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
./longlong.h:231:24: note: expanded from macro 'umul_ppmm'
                     "=r" ((USItype)(xl))                               
                                     ^
mpih-div.c:98:3: error: invalid % escape in inline assembly string
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:2: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:228:14: note: expanded from macro 'umul_ppmm'
  __asm__ ("%@ Inlined umul_ppmm\n"                                     
           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:13: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./longlong.h:230:25: note: expanded from macro 'umul_ppmm'
                   : "=&r" ((USItype)(xh)),                             
                                      ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:18: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
./longlong.h:231:24: note: expanded from macro 'umul_ppmm'
                     "=r" ((USItype)(xl))                               
                                     ^
mpih-div.c:98:3: error: invalid % escape in inline assembly string
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:2: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:228:14: note: expanded from macro 'umul_ppmm'
  __asm__ ("%@ Inlined umul_ppmm\n"                                     
           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:153:14: note: expanded from macro 'UDIV_QRNND_PREINV'
        sub_ddmmss (_xh, _r, (nh), (nl), _xh, _xl);                 
        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:200:23: note: expanded from macro 'sub_ddmmss'
           : "=r" ((USItype)(sh)),                                      
                             ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:153:19: note: expanded from macro 'UDIV_QRNND_PREINV'
        sub_ddmmss (_xh, _r, (nh), (nl), _xh, _xl);                 
        ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:201:24: note: expanded from macro 'sub_ddmmss'
             "=&r" ((USItype)(sl))                                      
                              ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:155:18: note: expanded from macro 'UDIV_QRNND_PREINV'
            sub_ddmmss (_xh, _r, _xh, _r, 0, (d));                  
            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:200:23: note: expanded from macro 'sub_ddmmss'
           : "=r" ((USItype)(sh)),                                      
                             ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:155:23: note: expanded from macro 'UDIV_QRNND_PREINV'
            sub_ddmmss (_xh, _r, _xh, _r, 0, (d));                  
            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
./longlong.h:201:24: note: expanded from macro 'sub_ddmmss'
             "=&r" ((USItype)(sl))                                      
                              ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:158:15: note: expanded from macro 'UDIV_QRNND_PREINV'
                sub_ddmmss (_xh, _r, _xh, _r, 0, (d));              
                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:200:23: note: expanded from macro 'sub_ddmmss'
           : "=r" ((USItype)(sh)),                                      
                             ^
mpih-div.c:98:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
                UDIV_QRNND_PREINV(dummy, r, r,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:158:20: note: expanded from macro 'UDIV_QRNND_PREINV'
                sub_ddmmss (_xh, _r, _xh, _r, 0, (d));              
                ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
./longlong.h:201:24: note: expanded from macro 'sub_ddmmss'
             "=&r" ((USItype)(sl))                                      
                              ^
mpih-div.c:104:6: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:13: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
./longlong.h:230:25: note: expanded from macro 'umul_ppmm'
                   : "=&r" ((USItype)(xh)),                             
                                      ^
mpih-div.c:104:6: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:17: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
./longlong.h:231:24: note: expanded from macro 'umul_ppmm'
                     "=r" ((USItype)(xl))                               
                                     ^
mpih-div.c:104:6: error: invalid % escape in inline assembly string
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:150:2: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_q, _ql, (nh), (di));                            
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:228:14: note: expanded from macro 'umul_ppmm'
  __asm__ ("%@ Inlined umul_ppmm\n"                                     
           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mpih-div.c:104:6: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:13: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
./longlong.h:230:25: note: expanded from macro 'umul_ppmm'
                   : "=&r" ((USItype)(xh)),                             
                                      ^
mpih-div.c:104:6: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:18: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
./longlong.h:231:24: note: expanded from macro 'umul_ppmm'
                     "=r" ((USItype)(xl))                               
                                     ^
mpih-div.c:104:6: error: invalid % escape in inline assembly string
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:152:2: note: expanded from macro 'UDIV_QRNND_PREINV'
        umul_ppmm (_xh, _xl, _q, (d));                              
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:228:14: note: expanded from macro 'umul_ppmm'
  __asm__ ("%@ Inlined umul_ppmm\n"                                     
           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mpih-div.c:104:6: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions
            UDIV_QRNND_PREINV(dummy, r, r,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./mpi-internal.h:153:14: note: expanded from macro 'UDIV_QRNND_PREINV'
        sub_ddmmss (_xh, _r, (nh), (nl), _xh, _xl);                 
        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./longlong.h:200:23: note: expanded from macro 'sub_ddmmss'
           : "=r" ((USItype)(sh)),                                      
                             ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
*** [mpih-div.lo] Error code 1

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2/mpi
1 error

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2/mpi
*** [all-recursive] Error code 1

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2
1 error

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2
*** [all] Error code 2

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2
1 error

make: stopped in /usr/ports/security/libgcrypt/work/libgcrypt-1.5.2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/security/libgcrypt
*** Error code 1

回避方法: オプション USE_GCC=4.2 を使用して、再度 make します

# cd /usr/ports/security/libgcrypt
# rm -rf work
# make USE_GCC=4.2 install clean

(2) x11/pixman

エラーメッセージ:

CPPAS pixman-arm-neon-asm.lo
/usr/include/float.h: Assembler messages:
/usr/include/float.h:43: Error: bad instruction `extern int __flt_rounds(void)'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_r'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'orig_w'
./pixman-arm-neon-asm.h:708: Warning: ignoring redefinition of register alias 'dummy'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'dst_w'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'src'
./pixman-arm-neon-asm.h:947: Warning: ignoring redefinition of register alias 'mask'
pixman-arm-neon-asm.S:3623: Warning: ignoring redefinition of register alias 'tmp1'
pixman-arm-neon-asm.S:3623: Warning: ignoring redefinition of register alias 'tmp2'
pixman-arm-neon-asm.S:3627: Warning: ignoring redefinition of register alias 'tmp1'
pixman-arm-neon-asm.S:3627: Warning: ignoring redefinition of register alias 'tmp2'
pixman-arm-neon-asm.S:3631: Warning: ignoring redefinition of register alias 'tmp1'
pixman-arm-neon-asm.S:3631: Warning: ignoring redefinition of register alias 'tmp2'
pixman-arm-neon-asm.S:3635: Warning: ignoring redefinition of register alias 'tmp1'
pixman-arm-neon-asm.S:3635: Warning: ignoring redefinition of register alias 'tmp2'
cc: error: assembler command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/pixman/work/pixman-0.30.0/pixman
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/pixman/work/pixman-0.30.0
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/pixman/work/pixman-0.30.0
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/pixman
*** Error code 1

Stop.
make: stopped in /usr/ports/x11/pixman

回避方法: 回避方法は send-pr しましたので、ports/181140 の patch を Makefile に適用してください。

# cd /usr/ports/x11/pixman
# rm -rf work
# patch < patch-Makefile.txt
# make install clean

(3) devel/glib20

エラーメッセージ:

/bin/sh /usr/ports/devel/glib20/work/glib-2.36.3/install-sh -d /usr/local/lib/gio/modules
 /bin/mkdir -p '/usr/local/share/glib-2.0/schemas'を
 install  -o root -g wheel -m 444 gschema.dtd '/usr/local/share/glib-2.0/schemas'
 /bin/mkdir -p '/usr/local/include/glib-2.0/gio/'
: jemalloc_arena.c:380: Failed assertion: "p[i] == 0"
Abort trap (core dumped)

回避方法: make.conf に MALLOC_PRODUCTION=yes が設定されていれば回避出来るエラーなのですが、問題は、このオプションが RaspberryPi のイメージ作成時に反映されていなければいけない、ということです。ですので、このエラーが発生した場合は、イメージ作成時の設定などを見直して、MALLOC_PRODUCTION=yes が有効になっているイメージを再作成し、かつ、RaspberryPi の make.conf にもオプション設定した上で glib20 を再コンパイルする必要があります。
(まあ、イメージを作りなおしたということは、そもそもの最初からやり直し、ではありますが・・。)
あと、この問題でビルドが止まるのは、このエラーが直接原因ではなく、他の ports で、必要なヘッダファイル(gio/gio.h 等)が入っていないという形で現れるので、注意が必要です。

コンパイルが完了したら、webcamd を動作させるために追加の設定が必要になります。

# echo 'cuse4bsd_load="YES"' >> /boot/loader.conf
# echo 'webcamd_enable="YES"' >> /etc/rc.conf

しかし、実は、xorg のコンパイルがまだ終わっていないので、動作確認ができていません。ほんとに動くんでしょうかね、これ・・。

0 件のコメント:

コメントを投稿