The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск браузера Pale Moon 32, opennews (??), 25-Янв-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


50. "Выпуск браузера Pale Moon 32"  +/
Сообщение от Zenitur (ok), 25-Янв-23, 14:18 
Я использую второй способ. Сборку осуществляю в Debian 7, тут Glibc 2.13 и GCC 4.7. Сначала собираю GCC 9:

tar xf Загрузки/gcc-9.5.0.tar.xz
cd gcc-9.5.0/
../configure --prefix=/home/user/gcc-9.5 --enable-languages=c,c++
make -j7
make install

Потом указываю PATH к исполняемому файлу GCC, но не указываю путь к библиотекам.

И браузер действительно пытается слинковаться с /usr/lib/libstdc++.so.6. Но ругается, что там нет определённых символов. И естественно, если экспоритровать LD_LIBRARY_PATH к новым библиотекам, то сборка завершается успешно.

И тогда я попробовал параметр сборки --enable-libstd-compat. Чтобы новые символы не требовались.

В этот раз сборка валится чуть позже. Однако в этот раз ругаетс яне линковщик, что в моём /usr/lib/libstdc++.so.6 нет нужных символов. Просто сам сборочный скрипт начинает проверять libxul на то, "а не используются ли там запрещённые символы?". И таки да, используются. И сборка падает, предлагая мне собрать без --enable-libstd-compet :-(

Я попробую в CentOS 6 + devtoolset. Возможно, там удастся собрать

Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск браузера Pale Moon 32"  +/
Сообщение от mikhailnov (ok), 25-Янв-23, 15:34 
Переменную LD_LIBRARY_PATH читает rtld (man ld-linux), не понимаю, как он связана с линковщиком. Есть флаг -L у компилятора.
А что вы хотите-то сделать в итоге?
Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск браузера Pale Moon 32"  +/
Сообщение от Zenitur (ok), 25-Янв-23, 15:47 
В качестве ОС для сборки я использую Debian 7 (запускаю готовую сборку в широком спектре дистров от 8 до 11 версии).

Так как в системе - старый компилятор, то я просто скомпилировал новый компилятор в /home/user/gcc-9.5. И теперь, при попытке запустить скомпилированный браузер, я получаю ошибку:

./palemoon: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./palemoon)

И это ещё сам исполняемый файл хочет GLIBCXX_3.4.21, а libxul вообще GLIBCXX_3.4.26 хочет...

Как починить? Выполнить:

export LD_LIBRARY_PATH=/home/user/gcc-9.5/lib:$LD_LIBRARY_PATH

Тогда работает.

Но ведь на официальном сайте сборки работают и без этого. Они же как-то сделаны таким образом, чтобы в системе мог быть и старый libstdc++.so.6.

Я хочу сделать себе такую же сборку. И вот думаю, как это сделать. По-идее, флаг --enable-stdcxx-compat делает именно это. Но у меня он не работает :-( Поэтому я и захотел узнать - как сделать так, чтобы работал

Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск браузера Pale Moon 32"  +/
Сообщение от mikhailnov (ok), 25-Янв-23, 16:09 
Возможно, они собирают с -static-libstdc++
Но вы можете просто сделать libstdc++-gcc10.so.6 описанным по ссылке выше способом (или взять готовую:
* https://mirror.rosalinux.ru/rosa/rosa2021.1/repository/x86_6...
* https://mirror.rosalinux.ru/rosa/rosa2021.1/repository/x86_6...
* https://mirror.rosalinux.ru/rosa/rosa2021.1/repository/x86_6...
Вот эти 3 пакета скачать, sudo apt install rpm, sudo mkdir -p /opt/libstdcc+-gcc10, sudo rpm --nodeps -Uvh --root /opt/libstdcc+-gcc10 *.rpm и далее использовать по аналогии с firefox по ссылке в моем комментарии выше, только делая пути исходя из реального расположения в /opt/libstdcc+-gcc10)
и положить libstcc+-gcc10.so.6 с собой, а на бинарник palemoon поставить RPATH, либо флагами компилятора/линковщика, либо через patchelf уже после его сборки.
libstdc++.so.6 без переименования с собой не кладите, если класть, то под другим именем.
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск браузера Pale Moon 32"  +/
Сообщение от Аноним (83), 25-Янв-23, 20:56 
Зенитуз, а тебе не надоело этой фигнёй маяться? Я сколько тебя не читаю - ты собираешь какой-то шлак на старье. Это типа хобби такое или ты решил посвятить жизнь прокрастинации и монотонному труду? Ну так я могу в дворники устроить.
Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

115. "Выпуск браузера Pale Moon 32"  +/
Сообщение от Zenitur (ok), 26-Янв-23, 00:04 
Не знаю, почему ты считаешь, что это неправильно? Какая разница, выполнять ли сборку под старую систему, или под новую? Я просто люблю старые операционки. И если бы в мире существовала Win98SE или ME, WinXP или 2003, которая способна запускать современный браузер и до сих пор получала бы фиксы безопасности - я бы ей пользовался.

Так же и под линуксом мне нравятся старые системы, в которые ещё не натаскали всякую лажу. Но ведь, в отличие от винды, можно всегда установить новое ядро в самый старый линукс. Хоть в RHEL 4, выпущенный в 2005 году. И иметь офигенную систему, которая память не жрёт, а современное оборудование поддерживает. И внутри устроена очень просто, что не нужно быть академиком, чтобы понимать, как она устроена.

Ответить | Правка | Наверх | Cообщить модератору

134. "Выпуск браузера Pale Moon 32"  +1 +/
Сообщение от Аноним (134), 26-Янв-23, 10:26 
rpath к новым библиотекам нужно на этапе линковки указать.
Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру