LINUX.ORG.RU

Сообщения gogi

 

Вопрос по отмизациям gcc

Форум — Development

Собрал свой кросскомпилятор. Тестирую его и обычный gcc на этом коде

#include <stdio.h> // Или вообще любой хидер из libc

#if defined __OPTIMIZE__
    #error optimization 
#endif

#if defined __OPTIMIZE_SIZE__
    #error optimization for size
#endif

int main ()
{
  return 0;
}
$ arm-unknow-linux-uclibcgnueabi-gcc main.c
main.c:8:6: error: #error optimization for size

$ arm-unknow-linux-uclibcgnueabi-gcc main.c -O0
main.c:8:6: error: #error optimization for size

$ arm-unknow-linux-uclibcgnueabi-gcc main.c -O1
main.c:4:6: error: #error optimization
main.c:8:6: error: #error optimization for size

$ gcc main.c
Ничего

$ gcc main.c -O1
main.c:4:6: error: #error optimization

arm-unknow-linux-uclibcgnueabi-gcc - версии 4.4.5 gcc - версии 4.4.4

Что мне не нравится? Какого-то хрена для кросскомпилятора включена по-умолчанию оптимизация по размеру. Собственно и вопрос, как этого не допустить?

gogi
()

Помогите выкачать git-репозиторий Qt

Форум — Development

Со временем понимаю, что никто не горит особым желанием фиксить отрепортенные мною баги. Появилось желание исправить их самому, ну и поучаствовать в разработке Qt. Уже есть кое-какие идеи как я могу помочь проекту. Но, канал у меня узкий и

git clone git://gitorious.org/qt/qt.git
обрывается так и не достигнув цели. Гугление показало, что git докачку не поддерживает. Поэтому буду благодарен, если кто-нибудь на быстром анлиме выкачает этот репозиторий, заархивирует и выложит на сервер поддерживающий докачку.

gogi
()

[Исходники Qt][ООП] Что-то я не пойму...

Форум — Development

Привожу кусок кода из файла $QTDIR/src/corelib/codecs/qtextcodec.h

class Q_CORE_EXPORT QTextCodec
{
    Q_DISABLE_COPY(QTextCodec)
public:
...
    QString toUnicode(const char *in, int length, ConverterState *state = 0) const
        { return convertToUnicode(in, length, state); }
    QByteArray fromUnicode(const QChar *in, int length, ConverterState *state = 0) const
        { return convertFromUnicode(in, length, state); }

    // ### Qt 5: merge these functions.
    QTextDecoder* makeDecoder() const;
    QTextDecoder* makeDecoder(ConversionFlags flags) const;
    QTextEncoder* makeEncoder() const;
    QTextEncoder* makeEncoder(ConversionFlags flags) const;

    virtual QByteArray name() const = 0;
    virtual QList<QByteArray> aliases() const;
    virtual int mibEnum() const = 0;

protected:
    virtual QString convertToUnicode(const char *in, int length, ConverterState *state) const = 0;
    virtual QByteArray convertFromUnicode(const QChar *in, int length, ConverterState *state) const = 0;

Смотрим на метод toUnicode(всё аналогично для fromUnicode). Он вызывает convertToUnicode(это метод из секции protected?). Он виртуальный и абстрактный? Но класс-то не виртуальный, я могу создавать его экземпляры и вызывать этот метод toUnicode свободно. WTF? Как это вообще скомпилировалось? Я забыл азы ООП или чего не знаю?

Собственно как я вышел на этот файл. Ковырял свою программу(точнее один тест для неё), в тесте случился segmentation fault. Повторил - не повторяется. Повторил ещё раз - не падает. Хорошо, у меня настроено делать core dump. Беру gdb, смотрю core dump. И вижу это место в backtrace. Нутром чую, что здесь какое-то нехорошее место и должно падать при вызове абстрактного метода. Один раз собственно и упало.

 

gogi
()

Встретил в одном makefil'е присвоение "?=". Что это такое?

Форум — Development

Примеры:

CFLAGS ?= -O2 -g
DESTDIR ?= /usr/local

Со своей стороны скажу, что читал man make, info make, гуглил. Ничего такого не нашёл. Речь идёт по-видимому о GNU make.

gogi
()

Отключил USB2.0 - машина уходит в ребут

Форум — Linux-hardware

В биос сетап отключил USB2.0 контроллер.

Загружаюсь, в grube'е выбираю ядро и... почти моментальная перезагрузка. Даже ядро не успевает распаковаться(32-е дебиановское). Ладно, есть в меню grub'a ещё 30-е. Пробую - то же самое.

И напоследок - то же ядро, но в recovery mode. В течении секунды успеваю заметить несколько пробегающих белых строк и опять ребут.

Ядра - x86_64.

Это баг такой или особенности жития линукса на моей материнке?

gogi
()

[ОН] Статистика по мобильным ОС

Форум — Talks

http://www.gartner.com/it/page.jsp?id=1372013

                                1Q10        1Q10 Market     1Q09                1Q09 Market
Company                         Units        Share (%)      Units               Share (%)
    
Symbian                         24,069.8        44.3        17,825.3            48.8
Research In Motion              10,552.6        19.4        7,533.6             20.6
iPhone OS                       8,359.7         15.4        3,848.1             10.5
Android                         5,214.7         9.6         575.3               1.6
Microsoft Windows Mobile        3,706.0         6.8         3,738.7             10.2
Linux                           1,993.9         3.7         2,540.5             7.0
Other OSs                       404.8           0.7         445.9               1.2

Total                           54,301.4        100.0       36,507.4            100.0						

1Q10 - первый квартал 2010 года(если кто не понял). Если андроид - это тоже линукс и Other OSs(всякие maemo, webos), то его рыночная доля уже 9.6+3.7+0.7=14%, что уже неплохо. И да, Microsoft с её 6,8% один из аутсайдеров.

 

gogi
()

[Обильное слюноотделение] Нетбук на PowerPC

Форум — Talks

Кто там хотел нетбуков на !x86 и с убунтой на борту?

http://hard.compulenta.ru/531887/

Ъ

Объём оперативной памяти ограничен 256 Мб; в качестве накопителя применён флеш-модуль на 16 Гб. Дисплей LinkBook имеет диагональ 8,9 дюйма и обладает разрешением 1024×600 пикселов.

В арсенале мини-компьютера — веб-камера, Ethernet-адаптер, контроллер беспроводной связи Wi-Fi, а также 3G-модем. Для подсоединения периферийных устройств предусмотрено два USB-порта.

LinkBook функционирует под управлением операционной системы Link OS на базе дистрибутива Ubuntu Linux со специально доработанным интерфейсом. На ПК предустанавливаются медиаплееры, пакет OpenOffice.org, социальные инструменты и пр.

gogi
()

Временное повышение привелегий до root в своей программе

Форум — Development

Всем привет.
Пишу программу под embedded linux(очень урезанная система в духе LFS, основанная на busybox), программе иногда нужно иметь права root'а(смонтировать флешку, установить новую дату-время в системе, ...). Над системой имею полный контроль, то есть могу программу запустить с правами root'а из /etc/inittab. Но по секурным причинам этого делать не хочется. Видимо нужно создать пользователя с ограниченными правами и запускать программу от него. А потом в нужные моменты программа должна как-то повысить свои привилегии и соответственно затем - понизить. Может есть какие системные вызовы? Или параллельно главной программе нужно запускать привилегированный процесс и его уже просить сделать нужное?

Вобщем, какие будут соображения?

gogi
()

[Debian] Замучали два глючка

Форум — General

Уже несколько месяцев. Думал когда-нибудь пройдут сами с очередными обновлениями, но непроходят. Пора принимать меры.

1. Во всех программах при вводе «cd ..» после ввода первой точки теряется пробел и получается «cd..», приходится возвращаться и вставлять пробел между 'd и '.'
«cd ..» - это примерный шаблон. Сюда же относятся любые слова после которых идёт пробел, а потом точка/запятая.

2. Время при выключении как правило не сохраняется. То есть выключил компьютер вечером в пятницу, прихожу на работу в понедельник, включаю компьютер - а там на часах вечер пятницы. Думаю что это чисто софтовая проблема. В логах ничего подозрительного вроде нет.

И да, сижу на обновляемом testing+gnome.

 

gogi
()

Вопрос про zImage собранный с опцией CONFIG_INITRAMFS_SOURCE

Форум — Development

Ковыряю ядро от свежей прошивки одного андроидофона. С помощью опции CONFIG_INITRAMFS_SOURCE в образ zImage (кажется?) объединяется собственно ядро и initramfs. Исходников ядра пока нету, поэтому единственная возможность что-либо серьёзное сделать - это как-то извлечь initramfs(в виде cpio-архива?), подправить её и упаковать обратно вместе с тем же ядром.

Вот и вопрос: Как?

gogi
()

Начато портирование библиотеки Qt на платформу Android

Новости — PDA
Группа PDA

Энтузиасту с ником BogDan удалось скомпилировать основные модули библиотеки Qt для работы на платформе Android. В настоящее время поддерживаются только последние версии Android, для которых выпущен инструментарий NDK(Native Development Kit). По словам энтузиаста, модули QtCore, QtNetwork, QtXml, QtSvg, QtSql уже работают достаточно хорошо, в дальнейшем он планирует сосредоточиться на поддержке модулей QtGui и QtMultimedia. Проект получил название android-lighthouse.

Проект является полностью открытым и свободным, энтузиаст приглашает всех заинтересованных людей присоединиться к его работе.

Сайт проекта: http://code.google.com/p/android-ligh...
Репозиторий с исходными текстами Qt: http://gitorious.org/~taipan/qt/andro...

Видеодемонстрации работающих примеров из поставки Qt(в android-эмуляторе). Осторожно, Flash!

http://blip.tv/file/3120929
http://blip.tv/file/3120940
http://blip.tv/file/3120955
http://blip.tv/file/3120967

>>> Анонс проекта в Google-группе android-ndk

 , ,

gogi
()

[Специалистам по всему] [Поиски] Формат Bellcore .sor файлов

Форум — Development

Лор, Помоги.
Очень нужно поковырятся в потрохах .sor файлов. Предметная область - оптическая рефлектометрия. Программ поддерживающих этот формат - полно (под оффтопик). Обильное гугление показало что на этот формат есть 2 стандарта: GR-196-CORE и SR-4731.
Мне бы их и достать. Сейчас они закрыты и продаются за немалую денежку, но вроде бы как в начале они были в свободном доступе. Так как программ полно не верится что все его покупали.
Пока, к сожалению, попадаются только pdf-ки с содержанием или всякие недостатейки.

 

gogi
()

[ВНЕЗАПНО] AdBlock уже банят

Форум — Talks

Искал кое-какую инфу в гугле и так попал на один сайтец. Сразу подумалось, что адблок скрывает от меня порнобанеры на пол экрана, но нет, вверху экрана примастилась всего лишь скромненькая текстовая рекламка от гугля.

 

gogi
()

Многопоточное сжатие

Форум — Desktop

Что-то я в мане на 7z не нашёл опции для указания количества потоков, между тем гугло-яндексы утверждают, что он это умеет. Чем ещё можно хорошенько пожать файлы? Хочу на работу принести образ виртуальной машины в 4 гб, а на флешке у меня раздел максимум в 3 гб. Вот не знаю влезет-невлезет. А экспериментировать на одном потоке - долго.

gogi
()

Подскажите сайт

Форум — Talks

с новостями о железе, где можно всласть потроллить в комментариях к теме.
Сейчас почитываю ixbt.com, overclockers.ru. Особенно нравятся среди прочего новости про Windows 7, которая должна спасти галактик^Wпроизводителей железа.
Да, ЛОР всё же не железячный сайт.

gogi
()

inotify+usbfs

Форум — General

Проделал следующие действия:
1.Убедился, что в ядре включена поддержка usbfs: cat /proc/filesystems | grep usbfs
2.Смонтировал её: sudo mount -t usbfs usbfs /proc/bus/usb
3.Скомпилировал пример из википедии (http://ru.wikipedia.org/wiki/Inotify): gcc main.c -o inotify_test. Проверил этот пример на произвольных файлах - работает.
4. Нашёл каталог в котором появляется/исчезает файл устройства при подключении/отключении флешки. У меня это /proc/bus/usb/001
5. Натравил на inotify_test этот каталог: inotify_test /proc/bus/usb/001.

В результате наблюдаю в консоли момент удаления файла при выдёргивании флешки, но не при её втыкании. Т.е. программа не получает от подсистемы inotify сообщение о создании файла, хотя он и создаётся.
Вопрос, что я делаю не так, или это один из сабжевых компонентов глючит?

gogi
()

[kernel] Как определить включена ли защита от записи на флешке?

Форум — Development

На некоторых флешках (и SD-карточках) есть переключатель защиты от записи. При подключении флешки к компьютеру в системном логе появляется запись "Write Protect is off/On", то есть ядро умеет определять положение этого переключателя. Мне в своей программе это тоже нужно уметь определять. Нашёл место где это делается:<linux sources>/drivers/scsi/sd.c. Это делает функция sd_read_write_protect_flag() и потом сохраняет флаг в структуру scsi_disk. Смотрел в сторону sysfs, procfs, ioctl для scsi generic, но тут такой информации не нашёл. Может кто подскажет как извлечь нужную мне инфу в userspace?

 

gogi
()

[GTK] Отвалился заголовок окон при разровачивании их на весь экран

Форум — Desktop

Сижу на debian squeezy i386, постепенно обновляюсь. Вчера было всё нормально, а вот сегодня наблюдаю сабж. Если запустить какую-нибудь программу с неразвёрнутым окном, то всё нормально. Стоит его развернуть на весь экран - как заголовок пропадает. Очень не удобно. Compiz - не использую. Видеодрайвер - Nvidia 180.51 (давно не менял). Проверял в GNOME, XFCE, LXDE - везде поведение одинаковое. В KDE всё нормально, поэтому и решил что всё из-за GTK.

Вот как всё выглядит:http://img188.imageshack.us/img188/2729/nocaption.png

 

gogi
()

Qt и g++: Не компилируется класс с абстрактным методом

Форум — Development

Qt - снапшот недельной давности, собирал с конфигом:

./configure -prefix /usr/trolltech/QtEmbedded-4.5.0s-x86 -qvfb -no-largefile -no-qt3support -little-endian -depths 8,16

g++ --version

g++ (Debian 4.3.3-3) 4.3.3

basicwidget.h:

#ifndef BASICWDG_H

#define BASICWDG_H

#include <QWidget>

class BasicWdg : public QWidget

{

Q_OBJECT

private:

protected:

virtual void MatchButtons(void)=0;

public:

BasicWdg(QWidget *parent = 0, Qt::WindowFlags f = 0);

};

#endif // BASICWDG_H

basicwidget.cpp:

#include "misc.h"

#include "basicwidget.h"

#include "fmain.h"

BasicWdg::BasicWdg(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f)

{

setGeometry(CENTRAL_WIDGET_LEFT, CENTRAL_WIDGET_TOP, CENTRAL_WIDGET_WIDTH, CENTRAL_WIDGET_HEIGHT);

setAutoFillBackground(true);

mainWnd->DisconnectAllSignals();

MatchButtons();

}

Компилятор пишет:

src/basicwidget.cpp|11|undefined reference to `BasicWdg::MatchButtons()'

gogi
()

Инициализация структуры в Си++

Форум — Development

Не могу осилить как это сделать, подскажите.

Имею gcc (native 4.3.3, arm-linux-gcc 4.1.1). Пробовал их поочереди - результат один.

user@host:~/code/test-ARM$ cat ./main.cpp

struct ttt {

int a;

int b;

};

static struct ttt qqq = {

.a = 5,

.b = 6,

};

int main()

{

return 0;

}

user@host:~/code/test-ARM$ g++ main.cpp

main.cpp:7: error: expected primary-expression before '.' token

main.cpp:8: error: expected primary-expression before '.' token

user@host:~/code/test-ARM$

Что самое странное, на этой же машине этот же пример инициализации компилируется внутри модуля ядра без проблем.

gogi
()

RSS подписка на новые темы