Attempt at an ebuild for phc
By Moult from Uncategorised Updates - Updates that are not part of a long-term project
10th December 2011
phc is a PHP compiler (yes, how strange) which I wanted to check out and realised it didn't exist in Gentoo's repository. Here is my attempt at an ebuild.
Unfortunately it doesn't build - stops with some boost errors, I'm not quite sure what's causing it...
[...snip...]
libtool: link: ( cd "plugins/tutorials/.libs" && rm -f "helloworld.la" && ln -s "../helloworld.la" "helloworld.la" )
/bin/sh ./libtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -Wextra -Wno-unused-parameter -Wno-write-strings -Wno-deprecated -march=native -O2 -pipe -module -avoid-version -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -o plugins/tutorials/MySQL2DBX.la -rpath /usr/lib64/phc/plugins/tutorials MySQL2DBX.lo -lgccpp -lgc -ldl
libtool: link: x86_64-pc-linux-gnu-ar cru plugins/tutorials/.libs/InsertDB.a InsertDB.o
libtool: link: x86_64-pc-linux-gnu-ranlib plugins/tutorials/.libs/InsertDB.a
libtool: link: ( cd "plugins/tutorials/.libs" && rm -f "InsertDB.la" && ln -s "../InsertDB.la" "InsertDB.la" )
/bin/sh ./libtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -Wextra -Wno-unused-parameter -Wno-write-strings -Wno-deprecated -march=native -O2 -pipe -module -avoid-version -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -o plugins/tutorials/show_traversal_order.la -rpath /usr/lib64/phc/plugins/tutorials show_traversal_order.lo -lgccpp -lgc -ldl
libtool: link: x86_64-pc-linux-gnu-ar cru plugins/tutorials/.libs/Expand_includes.a Expand_includes.o
libtool: link: x86_64-pc-linux-gnu-ranlib plugins/tutorials/.libs/Expand_includes.a
libtool: link: x86_64-pc-linux-gnu-g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/crtbeginS.o .libs/show_traversal_order.o /usr/lib64/libgccpp.so -L/usr/lib64 /usr/lib64/libgc.so -ldl -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/crtn.o -march=native -O2 -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -Wl,-soname -Wl,show_traversal_order.so -o plugins/tutorials/.libs/show_traversal_order.so
libtool: link: x86_64-pc-linux-gnu-g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/crtbeginS.o .libs/MySQL2DBX.o /usr/lib64/libgccpp.so -L/usr/lib64 /usr/lib64/libgc.so -ldl -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64/crtn.o -march=native -O2 -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -Wl,-soname -Wl,MySQL2DBX.so -o plugins/tutorials/.libs/MySQL2DBX.so
libtool: link: ( cd "plugins/tutorials/.libs" && rm -f "Expand_includes.la" && ln -s "../Expand_includes.la" "Expand_includes.la" )
/bin/sh ./libtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -Wextra -Wno-unused-parameter -Wno-write-strings -Wno-deprecated -march=native -O2 -pipe -export-dynamic -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -o src/phc phc.o -lgc -lgccpp -lltdl -lboost_regex-1_46 libphc.la -lgccpp -lgc -ldl
libtool: link: x86_64-pc-linux-gnu-ar cru plugins/tutorials/.libs/show_traversal_order.a show_traversal_order.o
libtool: link: x86_64-pc-linux-gnu-ranlib plugins/tutorials/.libs/show_traversal_order.a
libtool: link: ( cd "plugins/tutorials/.libs" && rm -f "show_traversal_order.la" && ln -s "../show_traversal_order.la" "show_traversal_order.la" )
libtool: link: x86_64-pc-linux-gnu-ar cru plugins/tutorials/.libs/MySQL2DBX.a MySQL2DBX.o
libtool: link: x86_64-pc-linux-gnu-ranlib plugins/tutorials/.libs/MySQL2DBX.a
libtool: link: ( cd "plugins/tutorials/.libs" && rm -f "MySQL2DBX.la" && ln -s "../MySQL2DBX.la" "MySQL2DBX.la" )
libtool: link: x86_64-pc-linux-gnu-g++ -Wextra -Wno-unused-parameter -Wno-write-strings -Wno-deprecated -march=native -O2 -pipe -Wl,-O1 -Wl,--as-needed -Wl,--as-needed -o src/.libs/phc phc.o -Wl,--export-dynamic -L/usr/lib64 /usr/lib64/libltdl.so -lboost_regex-1_46 ./.libs/libphc.so -L/usr/lib /usr/lib64/libgccpp.so /usr/lib64/libgc.so -ldl
./.libs/libphc.so: undefined reference to `boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >::maybe_assign(boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > > const&)'
./.libs/libphc.so: undefined reference to `boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)'
./.libs/libphc.so: undefined reference to `boost::re_detail::get_mem_block()'
./.libs/libphc.so: undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > const&)'
./.libs/libphc.so: undefined reference to `boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
./.libs/libphc.so: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
./.libs/libphc.so: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const'
./.libs/libphc.so: undefined reference to `boost::cpp_regex_traits<char>::toi(char const*&, char const*, int) const'
./.libs/libphc.so: undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'
./.libs/libphc.so: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'
./.libs/libphc.so: undefined reference to `boost::re_detail::put_mem_block(void*)'
./.libs/libphc.so: undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
./.libs/libphc.so: undefined reference to `boost::re_detail::raise_runtime_error(std::runtime_error const&)'
collect2: ld returned 1 exit status
make[2]: *** [src/phc] Error 1
make[2]: Leaving directory `/var/tmp/portage/dev-php/phc-0.3.0.1/work/phc-0.3.0.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/dev-php/phc-0.3.0.1/work/phc-0.3.0.1'
make: *** [all] Error 2
emake failed
* ERROR: dev-php/phc-0.3.0.1 failed (compile phase):
* (no error message)
*
* Call stack:
* ebuild.sh, line 84: Called src_compile
* environment, line 165: Called die
* The specific snippet of code:
* emake || die
*
* If you need support, post the output of 'emerge --info =dev-php/phc-0.3.0.1',
* the complete build log and the output of 'emerge -pqv =dev-php/phc-0.3.0.1'.
* This ebuild is from an overlay named 'hackathon': '/usr/local/portage/hackathon/'
* The complete build log is located at '/var/tmp/portage/dev-php/phc-0.3.0.1/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/dev-php/phc-0.3.0.1/temp/environment'.
* S: '/var/tmp/portage/dev-php/phc-0.3.0.1/work/phc-0.3.0.1'
Pastebin (bash)
- # Copyright 1999-2011 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- # $Header: $
- DESCRIPTION="Open-source compiler for PHP with support for plugins"
- HOMEPAGE="http://www.phpcompiler.org/"
- SRC_URI="http://www.phpcompiler.org/src/archive/${P}.tar.gz"
- LICENSE="BSD"
- SLOT="0"
- KEYWORDS="~amd64"
- IUSE="xml +gc graph"
- EAPI="2"
- RDEPEND="dev-lang/php[embed]
- xml? ( dev-libs/xerces-c )
- gc? ( dev-libs/boehm-gc )
- graph? ( media-gfx/graphviz )"
- DEPEND="${RDEPEND}
- dev-libs/boost"
- src_compile() {
- econf --with-posix-regex
- emake || die
- }
- src_install() {
- emake DESTDIR="${D}" install || die
- dodoc FAQ NEWS README || die
- dohtml EXTENDING.html ctags.html
- }
Comments
It seems as though there are no comments yet for this update. Why don't you leave one?


