ラベル ports の投稿を表示しています。 すべての投稿を表示
ラベル ports の投稿を表示しています。 すべての投稿を表示

2013年8月19日月曜日

FreeBSD で pkg 以外の ports 全てを削除する

FreeBSD on RaspberryPi で、何かをいろいろやり直したくなったときのための、 pkg 以外の ports 全てを削除するコマンド。

別に全消しでいいじゃん、と思われるでしょうが、 RaspberryPi では pkg のビルドに思いのほか時間がかかって面倒なので、これを使えば、ちょっとした時間短縮ができます。

# pkg info | awk '{print $1}' | grep -v ^pkg | xargs pkg delete -f -y

ちなみに、単に全部削除する場合は、

# pkg delete -af

これだけでおしまいです。
レッツバルス♪

2013年8月15日木曜日

FreeBSD on RaspberryPi で Xorg をビルドする

何かと結構時間かかりましたが、ようやくFreeBSD on RaspberryPi で Xorg が動作しました。やっぱりなんだかんだいっても、グラフィカルな表示をみるとうれしくなりますよね。もっとも、派手なウインドウマネジャが入ってるわけじゃないので、ひたすら地味ですが・・。

xorg のビルドに当たってのハマりどころは、前回の記事の webcamd のビルド でのハマりどころに、更にいくつか追加されるような感じになります。

まずは、手順から。

1: Xorg のビルドインストール

# cd /usr/ports/x11/xorg
# make config-recursive

オプション設定の注意ですが、RPI で使用するビデオドライバは別途入れることになりますので、xorg-drivers のビデオドライバは全部チェックを外すことをおすすめします。多分チェックすると新たなハマりどころが増えるだけかと思います。
あと、libiconv の patches オプションはオンにしておいた方がいいでしょう。
それ以外は基本的になるべく必要ではない設定は組み込まない、もしくはデフォルトで、を心がければそれほどハマらないですむのではないかと思います。

オプション設定が完了したら、次のコマンドを実行することで、xorg 及び依存関係にある ports 全てが自動的にビルドインストールされます。
尚、現時点でデフォルトでビルドされる xorg-server のバージョンは 1.7.7 ですが、WITH_NEW_XORG=yes を make.conf に指定することで xorg-server のバージョンが 1.10.6 になり、それに伴い関連するドライバーなどもバージョンアップした状態でビルドをすることができます。しかし、現時点ではこのオプションを指定した状態ではコンパイルが通らないため、使用は避けた方がよいでしょう。

# make install clean

もし、問題が発生したら、2: の回避方法を試してみて、問題の発生した ports が無事にインストール完了したら、

# cd /usr/ports/x11/xorg
# make install clean

で xorg のビルドを再開してください。

2: 問題が起きた場合の解決方法

多分、しばらくすると、エラーで落ちます。というか、落ちましたよね ?

x11/pixman や devel/glib20 のエラーについては、webcamd のビルドに書いてありますので、そちらを参照してください。ここでは残りのエラーの回避方法を書きます。

(1) x11-fonts/fontconfig

これは結構いやらしくて、デフォルトで make すると、make 自体は問題なく終了するのですが、インストール時に fc-cache が実行されると Segmentation fault (core dumped) を起こすというものです。そして、実際にエラーで止まるのは fontconfig ではなく、font 系の他の ports です。わたしの場合は font-misc-misc でした。そのため発生したら、一旦 fontconfig を deinstall して、入れ直す必要があります。

回避方法: 一旦インストール済みの fontconfig を deinstall し、make 時に、USE_GCC=4.2 を指定して再インストールします

# cd /usr/ports/x11-fonts/fontconfig
# make deinstall
# rm -rf work
# make USE_GCC=4.2 install clean

(2) x11-servers/xorg-server

これが恐らく、一番の山で、デフォルトの状態では決してビルドが通りません。なぜかというと、対応するビデオドライバがないからです・・。

エラーメッセージ:

Making all in fb
gmake[3]: Entering directory `/usr/ports/x11-servers/xorg-server/work/xorg-server-1.7.7/fb'
  CC    fb24_32.o
In file included from fb24_32.c:30:
./fb.h:102:2: error: "GLYPHPADBYTES must be 4"
#error "GLYPHPADBYTES must be 4"
 ^
1 error generated.
gmake[3]: *** [libfb_la-fb24_32.lo] Error 1
gmake[3]: Leaving directory `/usr/ports/x11-servers/xorg-server/work/xorg-server-1.7.7/fb'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/ports/x11-servers/xorg-server/work/xorg-server-1.7.7'
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/x11-servers/xorg-server
*** Error code 1

Stop.
make: stopped in /usr/ports/x11-servers/xorg-server

回避方法: しかし、実は、この問題は Ray 氏によって既に解決されていてxorg-server の patch 及び、RPI 向けの移植版ビデオドライバが公開されています。そのため、それを使用すれば問題なく xorg-server をビルドして動作させることができます。

まず、準備として、x11-servers-xorg-server-master.zipx11-drivers-xf86-video-scfb-master.zip を任意の場所にダウンロードします。以下のコマンドはファイルをダウンロードしてビルドインストールするまでになります。

# fetch --no-verify-peer https://github.com/rayddteam/x11-servers-xorg-server/archive/master.zip
# unzip master.zip
# cd x11-servers-xorg-server-master
# cp -rf * /usr/ports/x11-servers/xorg-server/
# rm master.zip

# fetch --no-verify-peer https://github.com/rayddteam/xf86-video-scfb/archive/master.zip
# unzip master.zip
# cd x11-drivers-xf86-video-scfb-master
# cp -rf x11-drivers-xf86-video-scfb-master /usr/ports/x11-drivers/xf86-video-scfb/
# rm master.zip

# cd /usr/ports/x11-servers/xorg-server/
# make install clean

# cd /usr/ports/x11-drivers/xf86-video-scfb/
# make install clean

3: xorg.conf について

xorg が無事最後までインストールできたら、いよいよ xorg の起動の準備になります。
通常であれば、Xorg -configure で設定ファイルを作成するのですが、なんと、RPI ではこれがうまく動作しません・・。困ったものです。
しかし、xorg-server の patch を書かれた Ray 氏が、記事に設定例も書いてくれていますので、これをそのまま使わせていただくことにします。

以下の設定を全て、/etc/X11/xorg.conf にコピペして保存します。


Section "Files"
EndSection

Section "Module"
    Load        "dbe"
    Disable    "dri"
    Disable    "dri2"
    Disable    "glx"
    SubSection  "extmod"
        Option  "omit xfree86-dga"
    EndSubSection
EndSection

Section "ServerFlags"
    Option    "AIGLX"        "false"
    Option    "NoAccel"    "True"
    Option    "NoDRI"        "True"
    Option    "DRI"        "False"
    Option    "DRI2"        "False"
EndSection

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option      "Protocol"      "auto"
    Option      "Device"        "/dev/sysmouse"
EndSection

Section "Monitor"
    Identifier  "Monitor"
    Mode "1024x600"
        DotClock        25.175
        HTimings        1024 1048 1148 1200
        VTimings        600 610 620 700
    EndMode
EndSection

Section "Device"
    Identifier  "Generic FB"
    Driver      "scfb"
    Option    "NoAccel"    "True"
EndSection

Section "Screen"
    Identifier  "Screen"
    Device      "Generic FB"
    Monitor     "Monitor"
    DefaultDepth 16
    SubSection "Display"
        Depth           16
        Modes           "1024x600"
    EndSubsection
EndSection

Section "ServerLayout"
    Identifier  "layout"
    Screen      0 "Screen" 0 0
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"
EndSection

わくわく、startx する前に、/etc/rc.conf に 設定を追加するのを忘れないようにしましょう。

# echo 'dbus_enable="YES"' >> /etc/rc.conf
# echo 'hald_enable="YES"' >> /etc/rc.conf

dbus と hald を手動で起動します。

# /usr/local/etc/rc.d/dbus start
# /usr/local/etc/rc.d/hald start

ようやく、準備が整いました。うまく動くといいですね~!

% startx

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 のコンパイルがまだ終わっていないので、動作確認ができていません。ほんとに動くんでしょうかね、これ・・。

FreeBSD CURRENT on RaspberryPI でports をビルドする際に発生する問題の回避策

/usr/ports/x11-fonts/fontconfig

デフォルトでmakeすると、makeは問題なく終了するが、インストール時に fc-cache が Segmentation fault (core dumped) を起こす。
回避策 make 時に、USE_GCC=4.2 を指定する