LINUX.ORG.RU

Вопрос по qconf/configure/make - x86 - SLKCFLAGS="-O2 -march=i486 -mtune=i686"

 , , , ,


0

1

В общем есть вот такой билд https://github.com/AndDT/SlackBuilds/blob/master/psi-plus/psi-plus.SlackBuild его я изменял, дописывая:

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i686) ARCH=i686 ;;
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
  LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
fi
и даже так прописывал:
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
/usr/bin/qconf

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  $WK \
  $WB \
  $PG \
  --release
но все равно получал во время сборки:
...
g++ -c -pipe -g -O2 -march=i486 -mtune=i686 -fPIC -Wall -W -D_REENTRANT -DIRISNET_STATIC -DWHITEBOARDING -DHAVE_XSS -DHAVE_ENCHANT -DPSI_PLUGINS -DHAVE_CONFIG -DIRIS_XMPP_JID_DEPRECATED -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtNetwork -I/usr/lib/qt/include -I/usr/include/QtCrypto -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../jdns -I../corelib -Icutestuff -Ilegacy -I. -o qjdns.o ../../jdns/qjdns.cpp
/usr/lib/qt/bin/moc -DIRISNET_STATIC -DWHITEBOARDING -DHAVE_XSS -DHAVE_ENCHANT -DPSI_PLUGINS -DHAVE_CONFIG -DIRIS_XMPP_JID_DEPRECATED -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtNetwork -I/usr/lib/qt/include -I/usr/include/QtCrypto -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../jdns -I../corelib -Icutestuff -Ilegacy -I. ../corelib/jdnsshared.cpp -o jdnsshared.moc
g++ -c -pipe -g -O2 -march=i486 -mtune=i686 -fPIC -Wall -W -D_REENTRANT -DIRISNET_STATIC -DWHITEBOARDING -DHAVE_XSS -DHAVE_ENCHANT -DPSI_PLUGINS -DHAVE_CONFIG -DIRIS_XMPP_JID_DEPRECATED -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtNetwork -I/usr/lib/qt/include -I/usr/include/QtCrypto -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../jdns -I../corelib -Icutestuff -Ilegacy -I. -o jdnsshared.o ../corelib/jdnsshared.cpp
/usr/lib/qt/bin/moc -DIRISNET_STATIC -DWHITEBOARDING -DHAVE_XSS -DHAVE_ENCHANT -DPSI_PLUGINS -DHAVE_CONFIG -DIRIS_XMPP_JID_DEPRECATED -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtNetwork -I/usr/lib/qt/include -I/usr/include/QtCrypto -I/usr/include/enchant -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I../../jdns -I../corelib -Icutestuff -Ilegacy -I. ../corelib/objectsession.cpp -o objectsession.moc
...
а именно меня смущает: -march=i486 -mtune=i686 . Не подскажите что не так или где что не указал?

★★★★★

Последнее исправление: NK (всего исправлений: 2)

У тебя же русским языком написано:

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"

походу просто опечатка, нет? ну или что ты хочешь при $ARCH i484? на какой машине собираешь, что показывает uname -a?

sakal
()
Ответ на: комментарий от sakal

не-не, я просто хочу что бы вот это включалось

if [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
т.к. у меня
uname -m
i686

NK ★★★★★
() автор топика
Ответ на: комментарий от sakal

не, у меня примерно так же выдается

Building for arch i686
SLKCFLAGS: -O2 -march=i686 -mtune=i686
LIBDIRSUFFIX: 
с вот этим

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i686) ARCH=i686 ;;
    i?86) ARCH=i486 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

if [ "$ARCH" = "i486" ]; then
    SLKCFLAGS="-O2 -march=i486 -mtune=i686"
    LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
    SLKCFLAGS="-O2 -march=i686 -mtune=i686"
    LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
    SLKCFLAGS="-O2 -fPIC"
    LIBDIRSUFFIX="64"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
fi

echo "Building for arch $ARCH"
echo "SLKCFLAGS: $SLKCFLAGS"
echo "LIBDIRSUFFIX: $LIBDIRSUFFIX"

по ходу синтаксис или еще какая-то переменная нужна перед ./configure

NK ★★★★★
() автор топика
17 октября 2015 г.

примерное заметил в smplayer, когда сборка идет:

...
g++ -c -O2 -march=i686 -mtune=i686 -O2 -march=i486 -mtune=i686 -Wall -W -D_REENTRANT -DSINGLE_INSTANCE -DFIND_SUBTITLES -DVIDEOPREVIEW -DYOUTUBE_SUPPORT -DBLURAY_SUPPORT -DGUI_CHANGE_ON_RUNTIME -DLOG_MPLAYER -DLOG_SMPLAYER -DMPCGUI -DSKINS -DMPRIS2 -DUPDATE_CHECKER -DCHECK_UPGRADED -DREMINDER_ACTIONS -DSHAREWIDGET -DAUTO_SHUTDOWN_PC -DMPV_SUPPORT -DMPLAYER_SUPPORT -DDOWNLOAD_SUBS -DOS_SEARCH_WORKAROUND -DYT_USE_SCRIPT -DYT_USE_SIG -DYT_USE_YTSIG -DDATA_PATH=\"/usr/share/smplayer\" -DDOC_PATH=\"/usr/doc/smplayer-15.9.0\" -DTRANSLATION_PATH=\"/usr/share/smplayer/translations\" -DTHEMES_PATH=\"/usr/share/smplayer/themes\" -DSHORTCUTS_PATH=\"/usr/share/smplayer/shortcuts\" -DQT_NO_DEBUG -DQT_DBUS_LIB -DQT_SCRIPT_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/lib/qt/include/QtCore -I/usr/lib/qt/include/QtNetwork -I/usr/lib/qt/include/QtGui -I/usr/lib/qt/include/QtXml -I/usr/lib/qt/include/QtScript -I/usr/lib/qt/include/QtDBus -I/usr/lib/qt/include -Iqtsingleapplication -Ifindsubtitles -Ifindsubtitles/maia -Ifindsubtitles/filedownloader -Iyoutube -Impcgui -Iskingui -Impris2 -Ivideopreview -I.moc -I.ui -o .obj/seekwidget.o seekwidget.cpp
...

g++ -c -O2 -march=i686 -mtune=i686 -O2 -march=i486 -mtune=i686

-march=i486

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

i?86) ARCH=i486 ;;

регулярка будет выбирать i686. Надо в case ставить break

arrecck ★★★
()
Ответ на: комментарий от NK

Проблема может быть не в кривом слакабилде, а в системе сборки QMake, которая из каких-нибудь mkspecs'ов подставляет эти самые -O2 -march=i486 -mtune=i686 по второму разу.

Проверь следующее:

$ cat qt.cpp 
#include <QApplication>
#include <QLabel>
int main(int argc, char** argv) {
    QApplication app(argc, argv);
    QLabel lbl("Hello, World !");
    lbl.show(); app.exec();
}

$ cat qt.pro
TEMPLATE = app
QT += widgets
SOURCES += qt.cpp

$ qmake qt.pro -r CONFIG+=release

$ make

Будут ли в выхлопе компилятора эти самые -march=i486 -mtune=i686?

Если будут, советую грепнуть на предмет «march» вот эту директорию: «/usr/lib/qt/mkspecs/».

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

optimization

psi+

Асечка тормозит, лол?

i486 i686

Оба вышли из употребления до того, как ты вступил в осознанный возраст, лол.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.