Bug 95170

Summary: Compilation failed, architecture arm64 errors
Product: poppler Reporter: heyligengregory
Component: generalAssignee: poppler-bugs <poppler-bugs>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: ARM   
OS: other   
Whiteboard:
i915 platform: i915 features:
Attachments: Compilation error of Poppler
Error with arm64-armv7-armv7s

Description heyligengregory 2016-04-27 13:31:23 UTC
Created attachment 123304 [details]
Compilation error of Poppler

After building and installing Poppler for armv7, armv7s & arm64 as static library and dynamic library, there is some errors at using Poppler as static lib.

There is the output in compileError.txt



libpoppler-qt5.a is supported for architecture arm64, is it a bug of Poppler ?




It seems that there were a problem at installing poppler for arm, especially with test-poppler-qt5.o 

There is the output :

"Undefined symbols for architecture armv7:

  "qt_assert(char const*, char const*, int)", referenced from:

      QArrayData::data() in test-poppler-qt5.o

  "QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from:

      QTypedArrayData<unsigned short>::deallocate(QArrayData*) in test-poppler-qt5.o

      QTypedArrayData<char>::deallocate(QArrayData*) in test-poppler-qt5.o

  "QArrayData::shared_null", referenced from:

      QArrayData::sharedNull() in test-poppler-qt5.o

  "QByteArray::QByteArray(char const*, int)", referenced from:

      QFile::decodeName(char const*) in test-poppler-qt5.o

  "QTextStream::operator<<(char const*)", referenced from:

      QDebug::operator<<(bool) in test-poppler-qt5.o

  "QTextStream::operator<<(QString const&)", referenced from:

      QDebug::operator<<(char const*) in test-poppler-qt5.o

  "QTextStream::operator<<(char)", referenced from:

      QDebug::maybeSpace() in test-poppler-qt5.o

  "QTextStream::operator<<(int)", referenced from:

      QDebug::operator<<(int) in test-poppler-qt5.o

  "QApplication::exec()", referenced from:

      _main in test-poppler-qt5.o

  "QApplication::QApplication(int&, char**, int)", referenced from:

      _main in test-poppler-qt5.o

  "QApplication::~QApplication()", referenced from:

      _main in test-poppler-qt5.o

  "QTime::currentTime()", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QColor::QColor(Qt::GlobalColor)", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QDebug::putString(QChar const*, unsigned long)", referenced from:

      QDebug::operator<<(QString const&) in test-poppler-qt5.o

  "QDebug::~QDebug()", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      PDFDisplay::paintEvent(QPaintEvent*) in test-poppler-qt5.o

      _main in test-poppler-qt5.o

  "QImage::QImage()", referenced from:

      PDFDisplay::PDFDisplay(Poppler::Document*, bool) in test-poppler-qt5.o

  "QImage::~QImage()", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      PDFDisplay::~PDFDisplay() in test-poppler-qt5.o

  "QImage::operator=(QImage const&)", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)", referenced from:

      _main in test-poppler-qt5.o

  "QObject::childEvent(QChildEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QObject::timerEvent(QTimerEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QObject::customEvent(QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QObject::eventFilter(QObject*, QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QObject::connectNotify(QMetaMethod const&)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QObject::disconnectNotify(QMetaMethod const&)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QString::fromUtf8_helper(char const*, int)", referenced from:

      QString::fromUtf8(char const*, int) in test-poppler-qt5.o

  "QString::fromAscii_helper(char const*, int)", referenced from:

      QString::QString(char const*) in test-poppler-qt5.o

  "QString::fromLatin1_helper(char const*, int)", referenced from:

      QString::fromLatin1(char const*, int) in test-poppler-qt5.o

  "QString::operator=(QString const&)", referenced from:

      QString::operator=(char const*) in test-poppler-qt5.o

  "QWidget::closeEvent(QCloseEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::enterEvent(QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::leaveEvent(QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::setVisible(bool)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::wheelEvent(QWheelEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::actionEvent(QActionEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::changeEvent(QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::nativeEvent(QByteArray const&, void*, long*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::qt_metacall(QMetaObject::Call, int, void**)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::qt_metacast(char const*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::resizeEvent(QResizeEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::tabletEvent(QTabletEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::focusInEvent(QFocusEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::dragMoveEvent(QDragMoveEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::focusOutEvent(QFocusEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::dragEnterEvent(QDragEnterEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::dragLeaveEvent(QDragLeaveEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::mouseMoveEvent(QMouseEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::setWindowTitle(QString const&)", referenced from:

      _main in test-poppler-qt5.o

  "QWidget::keyReleaseEvent(QKeyEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::contextMenuEvent(QContextMenuEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::inputMethodEvent(QInputMethodEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::mouseReleaseEvent(QMouseEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::focusNextPrevChild(bool)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::mouseDoubleClickEvent(QMouseEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::show()", referenced from:

      _main in test-poppler-qt5.o

  "QWidget::event(QEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::update()", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QWidget::dropEvent(QDropEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::hideEvent(QHideEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::moveEvent(QMoveEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::showEvent(QShowEvent*)", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::QWidget(QWidget*, QFlags<Qt::WindowType>)", referenced from:

      PDFDisplay::PDFDisplay(Poppler::Document*, bool) in test-poppler-qt5.o

  "QWidget::~QWidget()", referenced from:

      PDFDisplay::~PDFDisplay() in test-poppler-qt5.o

  "QPainter::setPen(QColor const&)", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QPainter::drawImage(QRectF const&, QImage const&, QRectF const&, QFlags<Qt::ImageConversionFlag>)", referenced from:

      QPainter::drawImage(int, int, QImage const&, int, int, int, int, QFlags<Qt::ImageConversionFlag>) in test-poppler-qt5.o

  "QPainter::drawImage(QPointF const&, QImage const&)", referenced from:

      QPainter::drawImage(int, int, QImage const&, int, int, int, int, QFlags<Qt::ImageConversionFlag>) in test-poppler-qt5.o

  "QPainter::drawRects(QRectF const*, int)", referenced from:

      QPainter::drawRect(QRectF const&) in test-poppler-qt5.o

  "QPainter::QPainter(QPaintDevice*)", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      PDFDisplay::paintEvent(QPaintEvent*) in test-poppler-qt5.o

  "QPainter::~QPainter()", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      PDFDisplay::paintEvent(QPaintEvent*) in test-poppler-qt5.o

  "QToolTip::showText(QPoint const&, QString const&, QWidget*)", referenced from:

      PDFDisplay::mousePressEvent(QMouseEvent*) in test-poppler-qt5.o

  "QDateTime::~QDateTime()", referenced from:

      _main in test-poppler-qt5.o

  "QListData::shared_null", referenced from:

      QList<Poppler::TextBox*>::QList() in test-poppler-qt5.o

  "QListData::detach(int)", referenced from:

      QList<Poppler::TextBox*>::QList(QList<Poppler::TextBox*> const&) in test-poppler-qt5.o

      QList<Poppler::EmbeddedFile*>::QList(QList<Poppler::EmbeddedFile*> const&) in test-poppler-qt5.o

  "QListData::dispose(QListData::Data*)", referenced from:

      QList<Poppler::TextBox*>::dealloc(QListData::Data*) in test-poppler-qt5.o

      QList<Poppler::EmbeddedFile*>::dealloc(QListData::Data*) in test-poppler-qt5.o

  "QByteArray::isNull() const", referenced from:

      QString::fromUtf8(QByteArray const&) in test-poppler-qt5.o

  "QMessageLogger::debug() const", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      _main in test-poppler-qt5.o

  "QMessageLogger::warning() const", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

      PDFDisplay::paintEvent(QPaintEvent*) in test-poppler-qt5.o

      _main in test-poppler-qt5.o

  "QTime::msecsTo(QTime const&) const", referenced from:

      PDFDisplay::display() in test-poppler-qt5.o

  "QImage::isNull() const", referenced from:

      PDFDisplay::paintEvent(QPaintEvent*) in test-poppler-qt5.o

  "QRectF::contains(QPointF const&) const", referenced from:

      PDFDisplay::mousePressEvent(QMouseEvent*) in test-poppler-qt5.o

  "QString::normalized(QString::NormalizationForm, QChar::UnicodeVersion) const", referenced from:

      QFile::decodeName(QByteArray const&) in test-poppler-qt5.o

  "QString::toLocal8Bit() const", referenced from:

      _main in test-poppler-qt5.o

  "QString::arg(QString const&, int, QChar) const", referenced from:

      PDFDisplay::mousePressEvent(QMouseEvent*) in test-poppler-qt5.o

  "QString::arg(long long, int, int, QChar) const", referenced from:

      QString::arg(int, int, int, QChar) const in test-poppler-qt5.o

  "QWidget::metaObject() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::redirected(QPoint*) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::initPainter(QPainter*) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::paintEngine() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::sharedPainter() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::heightForWidth(int) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::minimumSizeHint() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::inputMethodQuery(Qt::InputMethodQuery) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::hasHeightForWidth() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::metric(QPaintDevice::PaintDeviceMetric) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::devType() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QWidget::sizeHint() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "QDateTime::toString(Qt::DateFormat) const", referenced from:

      _main in test-poppler-qt5.o

  "typeinfo for QWidget", referenced from:

      typeinfo for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::redirected(QPoint*) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::initPainter(QPainter*) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::paintEngine() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::sharedPainter() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::metric(QPaintDevice::PaintDeviceMetric) const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

  "non-virtual thunk to QWidget::devType() const", referenced from:

      vtable for PDFDisplay in test-poppler-qt5.o

ld: symbol(s) not found for architecture armv7"
Comment 1 heyligengregory 2016-04-28 10:48:34 UTC
The problems are caused by : Poppler::Document::load("") or Poppler::Document::loadFromData(QByteArray())

There is some undefined symbols for architecture arm64 & armv7 even after cross-compiling.

Poppler::Document * document = nullptr; works without problems.
Comment 2 heyligengregory 2016-04-28 12:32:07 UTC
Created attachment 123318 [details]
Error with arm64-armv7-armv7s

Here is the error generate by make :
Comment 3 GitLab Migration User 2018-08-20 21:54:05 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/poppler/poppler/issues/116.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.