Skip to end of banner
Go to start of banner

.Build phantomjs on AArch64 v1.0

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Get Source

Phantomjs source can be get from Github.

AArch64 support is introduced in since v2.1.0. For any version later than this, you can just build it without any patches. For versions before 2.1.0 you need to make changes to make it work on aarch64. These changes may be specific to certain version. A patche for most common used version, 1.9.8, is provided in here.

Install dependencies

For Ubuntu-16.04

sudo apt-get install build-essential g++ flex bison gperf ruby perl \
  libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
  libpng-dev libjpeg-dev python libx11-dev libxext-dev

For CentOS-7

sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \
  openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \
  libpng-devel libjpeg-devel

Build Steps

For version before 2.1.0

./build.sh --confirm --jobs $(getconf _NPROCESSORS_ONLN)

For version after 2.0.0

./build.py -c -j $(getconf _NPROCESSORS_ONLN)

Test

./test/run-tests.py

Install

./deploy/package.sh

Issues

While compiling the v2.1.1,  I have faced the below issue because of O3 level optimization is included in Makefile.  After I changed it to O2 level the compilation goes well without any issues.

./build.py -c -j $(getconf _NPROCESSORS_ONLN)
...
....
......
/../include/QtCore/5.5.1/
QtCore -I../../include/QtCore -I.moc

-I../../mkspecs/linux-g++ -o .obj/qdesktopservices.o

util/qdesktopservices.cpp

In file included from ../../include/QtCore/qvector.h:1:0,

                 from ../../include/QtGui/../../src/gui/painting/qpolygon.h:37,

                 from ../../include/QtGui/qpolygon.h:1,

                 from ../../include/QtGui/../../src/gui/painting/qmatrix.h:37,

                 from ../../include/QtGui/qmatrix.h:1,

                 from

../../include/QtGui/../../src/gui/painting/qtransform.h:36,

                 from ../../include/QtGui/qtransform.h:1,

                 from ../../include/QtGui/../../src/gui/image/qimage.h:37,

                 from ../../include/QtGui/qimage.h:1,

                 from ../../include/QtGui/../../src/gui/image/qpixmap.h:42,

                 from ../../include/QtGui/qpixmap.h:1,

                 from ../../include/QtGui/../../src/gui/image/qbitmap.h:37,

                 from ../../include/QtGui/qbitmap.h:1,

                 from kernel/qt_gui_pch.h:63:

../../include/QtCore/../../src/corelib/tools/qvector.h: In member

function ‘{anonymous}::TreeNode

{anonymous}::SegmentTree::buildTree(int, int, int, const

{anonymous}::RectF&)’:

../../include/QtCore/../../src/corelib/tools/qvector.h:380:12:

warning: assuming signed overflow does not occur when assuming that (X

+ c) < X is always false [-Wstrict-overflow]

     } else if (!d->capacityReserved && asize < d->size && asize <

(oldAlloc >> 1)) { // we want to shrink

            ^

{standard input}: Assembler messages:

{standard input}:7254: Warning: missing operand; zero assumed

{standard input}:8854: Warning: missing operand; zero assumed

{standard input}:7254: Error: invalid operands (*UND* and *UND*

sections) for `*'

{standard input}:8854: Error: invalid operands (*UND* and *UND*

sections) for `*'

make[2]: *** [.obj/qgridlayoutengine.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[2]: Leaving directory

`/home/centos/ambari-patch/phantomjs/src/qt/qtbase/src/gui'

make[1]: *** [sub-gui-make_first] Error 2

make[1]: Leaving directory

`/home/centos/ambari-patch/phantomjs/src/qt/qtbase/src'

make: *** [sub-src-make_first] Error 2



ERROR: Failed to build PhantomJS! Building Qt Base failed.
  • No labels