LINUX.ORG.RU

Сообщения zanac1

 

Вышла сборка GNU toolchain c GCC 14.2.0 для Symbian

Новости — Разработка
Группа Разработка

После долгого и тяжелого труда вышла сборка GCC 14.2.0 в которой были исправлены ошибки сборки и добавлен ряд улучшений. В состав также вошли Binutils 2.29.1 и GDB 10.2.

Для Windows доступна в виде исполняемых файлов, для сборки на Linux-системах прилагается bash-сценарий.

Улучшения:

  • поддержка C++11 и новее в SDK;
  • по умолчанию определен макрос используемый для Symbian: __SYMBIAN32__;
  • полная поддержка common predefined macros в GCC;
  • не экспортируется operator delete ( void* ptr, std::size_t sz ) noexcept;.

Для поддержки современных стандартов C++ в папке fixed_headers находятся два заголовочных файла: gcce.h и e32cmn.h. Первый подходит ко всем SDK на базе Symbian 9, второй совместим лишь с несколькими SDK и исходниками Symbian 3. Для установки следует использовать install_headers.py

Макрос __SYMBIAN32__ предназначен для изоляции кода предназначенного для Symbian. По умолчанию задается системой сборки SDK или через прараметры компилятора если используется другая система сборки. Теперь будет немного легче тем, кто использует другие системы сборки.

«The common predefined macros are GNU C extensions» ©GCC мануал – предоставлен полный набор макросов для типов фиксированного размера.

Исправления:

  • ошибка сборки GCC «crtfastmath.o не найден»;
  • таки собрался freestanding libstdc++;
  • таки собрался GDB.

Начиная с 5 версии, GCC собирался только при помощи make -k, без оного начинал требовать crtfastmath.o, и на этом сборка заканчивалась. Это при том, что этот файл не компилируется для SOFTFP (в этом режиме программе все равно – FPU реальный или эмулиремый!). С указанным ключом собиралось все, кроме freestanding libstdc++ и GDB.

Качать здесь.

>>> Подробности

 , ,

zanac1
()

Отвалилась тёмная тема в Opera mobile 10

Форум — Linux-org-ru

Захожу время от времени с любимой нокии 5800 посмотреть на лор - а тут засада. Всё белое.

Upd: в предыдущий раз заходил с нокии в конце прошлого года, тёмная тема была.

 

zanac1
()

Дикий жор памяти при сборке кросскомпилятора

Форум — Development

Собираю кросскомпилятор arm-gcc с make -j6.

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

Как сию похабщину исправить?

Ось - Devuan chimera x64. Ничего не ковырял, обнов не ставил. В сабже нуб.

Раньше собирал под msys - был свой цирк с конями, но память не жрало как не в себя.

 , , ,

zanac1
()

Как задать свой путь к squashfs.img из папки LiveOS

Форум — Linux-install

В общем купил SSD, фирменная утилита для него либо под 10 либо в сборке с live Fedora.

Записал на флешку live Fedora, для загрузки использую syslinux. Грузится, утилита вроде работает.

Хочу поставить рядом Void linux. По умолчанию и Fedora и Void linux ищут squashfs.img в папке LiveOS в корне флешки.

Как задать свой путь по умолчанию к squashfs.img? Ну или другое имя поиска.

 , , ,

zanac1
()

Sylpheed удалил всю почту

Форум — General

Как восстановить почту? Чем проще, тем лучше. Локальный кэш остался.

Причина удаления - по-умолчанию в настройках стояло удалять старую почту.

 

zanac1
()

Как убрать прямое обращение к переменной в шаблоном классе.

Форум — Development

Есть в библиотеке такой класс, TAutoClose, освобождающий ресурсы своего члена класса, вызывая его метод Close(), при выходе из области видимости. При этом глаза мозолит использование iObj:

TAutoClose<RApaLsSession> cmd;
cmd.iObj.Connect();
cmd.iObj.Send();

Хочу так:

cmd.Connect();
cmd.Send();

Добавил реализацию оператора &(видел подобный фокус с оператором '*' для умных указателей), всё равно компилятор говорит, что не видит функции:

T& operator&() {
return iObj;}

Вот общий вид этой группы классов: TAutoClose освобождает ресурсы группы классов вида:

class RExample:
{
   int handle;
public:
   void Close() {}
}

И сам класс:

template <class T>
class TAutoClose
/**
@publishedAll

Automatically calls Close() on an object when that object goes out of scope.
The behaviour takes advantage of the fact that the compiler automatically
destroys objects that go out of scope.
*/
    {
public:
    inline ~TAutoClose();
private:
    static void Close(TAny *aObj);
public:
    /**
    An instance of the template class.
    */
    T iObj;
    };

// Class TAutoClose
template <class T>
inline TAutoClose<T>::~TAutoClose()
/**
Destructor.
The implementation calls Close() on iObj, the instance of the template class.
*/
    {iObj.Close();}
 
template <class T>
void TAutoClose<T>::Close(TAny *aObj)
    {((T *)aObj)->Close();}

 

zanac1
()

В скрипте функции выполняются не по очереди, а вразнобой.

Форум — Development

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

Вся логика находится в файле ‘init.py’(знаки подчеркивания в начале и конце имени файла режет парсер сайта).

Среди них две функции(модули piper и build_apps) запускают многопоточную сборку друг за другом, может из-за этого проблемы.

Исходный код - GitHub.

Ожидаемый лог:

  • Engine *.mmp done!(собираются статические библиотеки)
  • Target ScummVM?.mmp done!(собираются exe)
  • pkg: *.pkg(собираются установочные файлы)

Лог сборки:

Queue size: 92  
Thread count: 6
Queue size: 8
Thread count: 6
pkg: Neverhood.pkg
pkg: Neverhood_cmdline.pkg
Target ScummVM5.mmp done!
Target Neverhoode.mmp done!
 Target ScummVM1.mmp done!
Engine access.mmp done!
Engine adl.mmp done!Engine agi.mmp done!

Engine avalanche.mmp done!
Target ScummVM6.mmp done!
Target ScummVM2.mmp done!
Target ScummVM3.mmp done!
Engine buried.mmp done!
Target ScummVM7.mmp done!
Engine asylum.mmp done!
Target ScummVM4.mmp done!
Engine cge.mmp done!
Engine cge2.mmp done!
Engine chewy.mmp done!
Engine composer.mmp done!
Engine cine.mmp done!
Engine cryo.mmp done!
Далее много «Engine *.mmp done!»

Чяднт? P.S. Python 2.

 ,

zanac1
()

В скрипте несколько вызовов datetime.now() выдает одинаковое время

Форум — Development

Хочу использовать модуль питона в логах. Урезаная версия:

from datetime import datetime

print "Datetime: %s"  %datetime.now()
print "Hello world!"
print "Datetime: %s"  %datetime.now()

Выхлоп:

Datetime: 2021-06-20 22:21:39.796000
Hello world!
Datetime: 2021-06-20 22:21:39.796000

Вместо хелловорда поставьте тяжелую задачу, сборка буста например. Чяднт?

 

zanac1
()

Ищу спецов умеющих в плагины для Eclipse

Форум — Development

Я, автор релизов ScummVM для Symbian, прошу помочь перенести плагины к Eclipse с поддержкой Symbian на новое ядро. Исходный код — github.com/SymbianSource/oss.FCL.sftools.dev.ide.carbidecpp и github.com/SymbianSource/oss.FCL.sftools.dev.eclipseenv.carbideui. И справка SDK не подключается, тоже нужно починить.

 , ,

zanac1
()

Сайт mingw.org недоступен более месяца

Новости — Разработка
Группа Разработка

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

Цель данного проекта – сборка нативных программ для Windows с помощью свободного программного обеспечения, в частности порта gcc, binutils и gdb, а также порта bash. Эту нелегкую ношу свободного ПО во мраке проприетарщины они несли свыше десяти лет. Новый проект, который взял на себя их задачи – Mingw-w64. По какой-то причине на сайте Mingw-w64 кривой сертификат.

>>> Подробности

 , ,

zanac1
()

Вышла тестовая сборка ScummVM 2.2.0 для Symbian

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

ScummVM — это программа, позволяющая запускать некоторые классические адвенчуры и квесты при наличии у вас файлов данных от этих игр. Суть в том, что ScummVM заменяет исполняемые файлы игры, тем самым позволяя играть на тех системах, которые даже не существовали во время их создания!

ScummVM поддерживает более 250 квестов и адвенчур. Поддерживаются многие классические квесты, изданные такими легендарными студиями, как LucasArts, Sierra On-Line, Revolution Software, Cyan, Inc. и Westwood Studios. Вместе с такими знаменитыми играми, как Monkey Island, Broken Sword, Myst, Blade Runner и многими другими, вы сможете отыскать малоизвестные адвенчуры и по-настоящему скрытые шедевры. (Взято с сайта scummvm.org)

В силу ограниченного объема оперативной памяти устройств монолитный исполняемый файл был разбит на 4 части. Гарантированно запускается сам ScummVM , запуск игр не гарантирован кроме Blade Runner и Ultima 8. Эту версию можно ставить паралелльно уже установленной, она не заменит уже установленную. Автор будет признателен за тестирование и отзыв что работает или не работает.

Качать отсюда - https://sourceforge.net/projects/scummvms60git/

 , ,

zanac1
()

Как правильно инициализировать список(std::list) объектов «на лету»?

Форум — Development

Создаётся список(std::list) объектов с нетривиальным конструктором «на лету», элемент за элементом. Как их правильно инициализировать?

 

zanac1
()

Как заполнить буфер используя поля струтуры

Форум — Development

В памяти создается пустой массив uint32_t для структуры:

struct Elf32_HashTable
{
  uint32_t nBuckets;
  uint32_t nChains;
  uint32_t bucket[nBuckets];
  uint32_t chain[nChains];
};

Размер массива вычисляется по формуле uint32_t sz = 2 + iNSymbols + iNSymbols/3 + iNSymbols%0x3;, где nBuckets = iNSymbols/3 + iNSymbols%0x3;.

Как можно заполнить поля bucket и chain без дополнительный указателей, причем заполняться будут в случайном порядке?

Можно заполнять через указатели pBucket = &buf[x], но хочется минимализма...

 

zanac1
()

При обращении по указателю программа падает

Форум — Development

Программа работает с буфером готовых данных char*. Используется две структуры:

struct Buffer
{
  uint32_t bufsize;
  Bufdata* data;
}

struct Bufdata
{
  uint32_t datasize;
  const uint32_t* data;
}

Код:

Buffer* buf = (Buffer*)rawDataAsCharArray;
Bufdata* bdata = buf->data;
printf(bdata->datasize); //упс, упало
Если в Buffer убрать поле Bufdata* data и сделать так, то все норм:
Bufdata* bdata = (Bufdata*)(rawDataAsCharArray+sizeof(Buffer) );
printf(bdata->datasize); //ок
Компилятор - GCC 5.3.0 Чядн?

 ,

zanac1
()

Вышел порт для линукса утилиты elf2e32

Форум — Talks

elf2e32 создает бинарные файлы для Symbian из elf.

Преимущества этой утилиты над аналогами:

  • кроссплатформенность;
  • код распространяется под Eclipse Public License;
  • стабильность.

Минус:

  • итоговый размер файла на ~15% больше, чем у аналогов из-за ошибки расчета размера бинарного файла.

Ссылка

Перемещено Shaman007 из development

 , ,

zanac1
()

Самодельный пасер на С++ : не удаляет комментарии

Форум — Development

Написал программу которая должна удалять комментарии в файле исходного кода С++. Условия: // /* и */ не будут содержаться в самих комментариях, строках и символьных константах. Проблемы: '*/' сохраняется в файл. Код:

#include <iostream>
#include <fstream>

using namespace std;

const char *filename = "commandLine.h";
const char *filename2 = "commandLine_out.h";

int main()
{
    ifstream in(filename, ios_base::in);
    if(!in.is_open())
        std::cout << "Input file not found!" << std::endl;

    ofstream out(filename2);
    if(!out.is_open())
        std::cout << "Output file not found!" << std::endl;

    string line;

    bool inComment = false;
    bool afterComment = false;
    int i = 0;

    while(getline(in, line))
    {
        i++;
        line.append("\n");
//        std::cout << inComment << std::endl;

        if(afterComment == true)
        {
//            inComment = false;
            afterComment = false;
        }

        if(line.find("//")!=std::string::npos)
            inComment = true;

        if(line.find("/*")!=std::string::npos)
            inComment = true;
        if(line.find("*/")!=std::string::npos)
            inComment = false;
            afterComment = true;
        std::cout << i << " : " << inComment << "-" << afterComment <&lt; std::endl;
        if((inComment == false)&&(afterComment == true))
        {
            out << line;
        }
    }

    out.close();
    in.close();
    cout << "Hello world!" << endl;
    return 0;
}

 

zanac1
()

FFMPEG : не собирается под MSYS

Форум — Development

Решил собрать FFMPEG под Symbian. Цель - получить набор статических библиотек : compat, libavcodec, libavfilter, libavformat, libavresample ,libavutil, libpostproc, libswresample, libswscale.

Окружение : WinXP64 sp2, GCCE 4.4.1 от Codesourcery для Symbian, MinGW 4.8.1, Msys

Что сделано : взял с вики ffmpeg сборочный скрипт для Rasberry и доработал:

./configure --enable-cross-compile --cross-prefix=arm-none-symbianelf- --enable-static \
 --disable-shared --arch=arm --target-os=symbian --cc=arm-none-symbianelf-gcc \
 --enable-armv6t2 --cpu=armv6t2 --disable-mmx --incdir=epoc32\include\ffmpeg \
 --disable-runtime-cpudetect --enable-gray --disable-programs --disable-doc \
 --enable-rpath --disable-avdevice --enable-gpl --enable-nonfree \
 --prefix=$EPOCROOT --sysinclude=/d/Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include

В configure есть поддержка Symbian, был получен config.h и config.mak s активированными ассемблерными файлами под armv6t2.

    symbian)
        SLIBSUF=".lib"
        enable dos_paths
        add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default --include=$sysinclude/symcpp.h
        add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
        ;;

Проблемы: 1) Autoconf нашел лишь часть функций libc, например пропустил всё в math.h. Лог на http://pastebin.com/adatjSkB

2) при сборке в MSYS:

$ make
CC      libavfilter/aeval.o
In file included from libavfilter/aeval.c:26:
./libavutil/avassert.h:30: fatal error: stdlib.h: No such file or directory
compilation terminated.
make: *** [libavfilter/aeval.o] Error 1

ЧЯДНТ?

 , , , ,

zanac1
()

GCC не видит хедеры библиотеки С

Форум — Development

Пытаюсь собрать libflac под Msys. на команду :

CFLAGS=-O1 configure -mcpu=armv5t --with-ogg-includes=«$EPOCROOT\epoc32\include\tremor» --includedir=$EPOCROOT/epoc32/include/libc --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 -includes=$EPOCROOT\epoc32\include\tremor получаю :

checking for ANSI C header files... no checking for sys/types.h... no checking for sys/stat.h... no checking for stdlib.h... no checking for string.h... no checking for memory.h... no checking for strings.h... no checking for inttypes.h... no checking for stdint.h... no checking for unistd.h... no

Нужно получить статическую библиотеку

 , , ,

zanac1
()

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