2014年7月6日日曜日

全くの別件ですが

ここのところの内容と全く関係ないけど自分用のメモ
nginx ビルドオプション for 1.7.2
./configure --with-http_ssl_module --with-pcre-jit --with-zlib=./zlib-1.2.8 --with-http_spdy_module

2014年7月5日土曜日

ap_log_error等の所在

/usr/ports/apache22のmoduleでap_log_errorを呼び出してるものをサンプルとして確認すると#include "http_log.h"している様に思える

ではmod_pagespeedにないのかというと
./work/mod_pagespeed_source_1.2.24.2/mod_pagespeed/src/third_party/httpd24/src/include/http_log.h
./work/mod_pagespeed_source_1.2.24.2/mod_pagespeed/src/third_party/httpd/src/include/http_log.h
という感じに存在してるので、これincludeできてないのかなぁ?

ap_log_errorはどこよ

前回からの続き

nm /usr/local/lib/libapr*.a | grep ap_log_errorしても
なにも出てこない。

libapr関連じゃないのか?


2014年7月4日金曜日

FreeBSD10R mod_pagespeed未完のその4

前回の
'strtoul_is_not_a_portable_function_use_strtol_instead' in the global namespace
となる件は

third_party/httpd24/src/include/httpd.h
third_party/httpd/src/include/httpd.h
の2カ所に
 #define strtoul strtoul_is_not_a_portable_function_use_strtol_instead
となってる箇所があるので、強引に #if 0の手パッチ

これでいよいよlibmod_pagespeed.soのリンクまでいくのだが
undefined reference to `ap_log_error'
などがエラーとして出てくる

mod_pagespeed.target.mkのLIBSに -lapr-1 -laprutil-1を追加しても
状況変わらず。(もちろん-L/usr/local/lib 前提で)

さてどうするかな

2014年7月3日木曜日

FreeBSD 10Rのmod_pagespeed 未完の停滞編

前回のopencvのライブラリとリンク出来ない件は
pagespeed_automatic_test.target.mkや mod_pagespeed_test.mkなどに
LIBSの定義があるので
 -lopencv_imgproc -lopencv_highgui -lopencv_core -lopencv_regacy
を追加して mod_pagespeed_testなどのリンクは完了。

続くフェーズのmod_pagespeed/net/instaweb/apache/instaweb_handler.oの
make中に

マクロ展開しまくった挙句に
error: no member named
      'strtoul_is_not_a_portable_function_use_strtol_instead' in the global namespace
using ::strtoul;

なんていうエラーが出てきたのだが strtoulを使用している所が見つからない。

2014年7月2日水曜日

FreeBSD10のmod_pagespeed 未完の泥縄編

前回instaweb_data2cがコアダンプしてしまってmod_pagespeedのmakeがすすまない件

9.2Rまでの慣例にならってUSE_GCC=yesな環境でmakeしていたのだが、出来た中間処理プログラムがcoredumpするに至ってgdbなどで眺めていたのだが、そもそもmainまで飛んでこないので、gccのランタイムと相性悪そうという疑いを持ちはじめた

そこでFreeBSD10なんだからと
CC=             clang
CXX=            clang++
GYP_DEFINES+=   clang=1
としていくと、既知のコンパイルエラーは起きるが #undef major #undef minorを挿入したり、c++のtr1拡張由来の部分を削除したり、wcschrがambitiousといわれて直前に using ::wcschr;を入れたりと手パッチの応酬でなんとかmod_pagespeedtestのリンクフェーズまで来た。

しかし、opencvのライブラリを探しに行ってldが見つけられない模様
どっかの.gypiを修正すればいいんだろうけど、さてはて

あと
clang c++はgcc g++互換なので #ifdef defined(__GNUC__)にもマッチしてしまう
&& !defined(__clang__)を追加して回避