The OpenNET Project / Index page

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



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

Оглавление

Представлен Blink, эмулятор x86-64, опережающий QEMU по производительности, opennews (ok), 05-Янв-23, (0) [смотреть все] +1

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


12. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +2 +/
Сообщение от Аноним (11), 05-Янв-23, 10:36 
>Да что ты говоришь, родной... Правда, что ли? Пойду расскажу коллегам по подвалу, а то "мужики-то не знают".

Расскажи. Заодно расскажи мужикам про dlopen(), который в glibc дёргается на каждый чих.

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

28. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +3 +/
Сообщение от Аноним (27), 05-Янв-23, 11:52 
Это тебе кто такую чушь рассказал, или сам нафантазировал?
Ответить | Правка | Наверх | Cообщить модератору

34. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +3 +/
Сообщение от Аноним (34), 05-Янв-23, 12:28 
намекаешь, что нужно использовать glibc без nss, iconv и чего-то там еще
Ответить | Правка | Наверх | Cообщить модератору

70. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +2 +/
Сообщение от GOrilla (?), 05-Янв-23, 16:53 
Здрасьте приехали. Это новое поколение? Тебе сколько лет?
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

144. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 05-Янв-23, 23:57 
> Здрасьте приехали. Это новое поколение? Тебе сколько лет?

Судя по всему с линуксом давненько не работали... чувак правду говорит, под линуксом х86_64 glibc не компилится статически, если там что чуть посложней  ХелоВорлд, Я чуть ниже предложил Урри потренироваться на кошках/sqlite3, можете обьеденить усилия и доказать что есть еще порох в штанах

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

163. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +1 +/
Сообщение от OpenEcho (?), 06-Янв-23, 10:15 
Судя по минусам, убеждаюсь еще раз в "глубоких" знаниях "спецов" опеннета...

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

177. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от GOrilla (?), 06-Янв-23, 12:17 
>> Здрасьте приехали. Это новое поколение? Тебе сколько лет?
> Судя по всему с линуксом давненько не работали... чувак правду говорит, под
> линуксом х86_64 glibc не компилится статически, если там что чуть посложней
>  ХелоВорлд, Я чуть ниже предложил Урри потренироваться на кошках/sqlite3, можете
> обьеденить усилия и доказать что есть еще порох в штанах

Ну что же, вызов принят.

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

182. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от GOrilla (?), 06-Янв-23, 13:07 
http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz

Собрано на Debian bullseye 64. Собрано почти по рецепту, полностью не разбирался, пакет отлаживать лень. Не собрано csv.so ну и понятно это .so.

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

240. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 07-Янв-23, 20:37 
> http://www.tinyware.ru/garbage/sqlite3-3.34.1.tar.gz
> Собрано на Debian bullseye 64. Собрано почти по рецепту, полностью не разбирался,
> пакет отлаживать лень. Не собрано csv.so ну и понятно это .so.

Сорри, но это обрубыш, которым пользоваться будет трудно (без readline, ncurses ), я чуть ниже предложил опции для компиляции, более сложный пример (и наверное боллее подходящий в контексте дискуссии) - статический php-cli с маст хэв extensions

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

247. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от GOrilla (?), 08-Янв-23, 13:26 
Там в папке рядом деб пакеты и rules как я собирал. Tar gz это фигня.
Ответить | Правка | Наверх | Cообщить модератору

256. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 10-Янв-23, 02:15 
> Там в папке рядом деб пакеты и rules как я собирал. Tar
> gz это фигня.

Вот простой исходник:

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>

int main(int argc, char const *argv[]) {
    struct addrinfo hints;
    struct addrinfo *res, *tmp;
    char host[256];

    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_INET;

    if (argc != 2) {
        fprintf(stderr, "%s string\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    int ret = getaddrinfo(argv[1], NULL, &hints, &res);
    if (ret != 0) {
        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(ret));
        exit(EXIT_FAILURE);
    }

    for (tmp = res; tmp != NULL; tmp = tmp->ai_next) {
        getnameinfo(tmp->ai_addr, tmp->ai_addrlen, host, sizeof(host), NULL, 0, NI_NUMERICHOST);
        puts(host);
    }

    freeaddrinfo(res);
    exit(EXIT_SUCCESS);
}


Компилим:
    gcc -Wall -static  -static-libgcc -o getaddrinfo  getaddrinfo.c

Читаем:

    getaddrinfo.c:(.text+0x8c): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

делаем

   ldd getaddrinfo
    not a dynamic executable

котoрый вроде успокаивает, но теперь переносим бинарник на Alpine Linux и обламываемся потому как все написанно в предупреждении. В более сложных случаях, даже на системах с glibc но с более старой версией будет такой же облом потому как это фейк статика

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

140. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от Урри (ok), 05-Янв-23, 23:41 
Хм.

```
$ cat helloworld.c
#include <stdio.h>

int main()
{
    printf("Hello, World!\n");
    return 42;
}

$ gcc helloworld.c -static -static-libgcc

$ ls
a.out helloworld.c

$ readelf -d a.out
There is no dynamic section in this file.

$ ./a.out
Hello, World!
```

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

143. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  –1 +/
Сообщение от OpenEcho (?), 05-Янв-23, 23:46 
А теперь, чуть посложней пожалуйста -  sqlite3 для х86_64 под линь, плыз
Ответить | Правка | Наверх | Cообщить модератору

206. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  –2 +/
Сообщение от Урри (ok), 06-Янв-23, 20:48 
> А теперь, чуть посложней пожалуйста -  sqlite3 для х86_64 под линь,
> плыз

Писос ты бездарь... Самому сложно было трайнуть? Даже гуглить не надо, все выше написано.
Да без проблем. Минута времени:

$ uname -a
Linux PC 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

$ wget https://www.sqlite.org/2022/sqlite-amalgamation-3400100.zip
$ unzip ./sqlite-amalgamation-3400100.zip
$ cd sqlite-amalgamation-3400100

$ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

$ readelf -d a.out
There is no dynamic section in this file.

$ ./a.out
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> create table noob (id integer primary key);
sqlite> insert into noob (id) values (NULL) returning id;
1
sqlite> .exit

--
А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал фигню, но вы мне убедительно показали что был не прав.".

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

225. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  –1 +/
Сообщение от Аноним (-), 07-Янв-23, 08:23 
> $ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

Так и знал что Урри найдет amalgamation и таки покажет лабуху мастеркласс. Зачетно.

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

235. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 07-Янв-23, 19:51 
>> $ gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc
> Так и знал что Урри найдет amalgamation и таки покажет лабуху мастеркласс.
> Зачетно.

Подшакалил ? Зачетно ! Лизни еще, а потом попробуй компильнуть ПЫХ или питон статически, не голяк, а экстеншенами с readline, json, xml...

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

233. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 07-Янв-23, 19:42 
Откуда бLять у вас здесь столько желчи у всех?! В этом здесь большинство первоклассные спецы... "так держать !"


> gcc -DSQLITE_OMIT_LOAD_EXTENSION ./sqlite3.c ./shell.c -pthread -static -static-libgcc

/usr/bin/ld: /tmp/ccdxr656.o: in function `find_home_dir':
shell.c:(.text+0x283f2): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

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

250. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от пох. (?), 08-Янв-23, 20:25 
о, ну хоть один попался если не грамотный то умеющих хотя бы прочитать выхлоп компилятора.

А сколько еще тебя ждет открытий чудных, если ты ЭТО еще и запускать вздумаешь...

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

255. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 10-Янв-23, 02:11 
> о, ну хоть один попался если не грамотный то умеющих хотя бы прочитать выхлоп компилятора.

Да куда нам грешым до "вашего величества" :)

> А сколько еще тебя ждет открытий чудных, если ты ЭТО еще и запускать вздумаешь...

Это не ко мне, это к народу свято верующим в чудо что glibc можно компилить статически

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

265. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +1 +/
Сообщение от пох. (?), 10-Янв-23, 20:40 
> Это не ко мне, это к народу свято верующим в чудо что
> glibc можно компилить статически

На самом деле они правильное веруют - компилить - можно ;-) Только потом ничего кроме хеловротов не работает.

Я уж не знаю что такое надо придумать, чтоб не зацепить хотя бы nsswitch, а это в современных версиях еще далеко не все.

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

241. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  –1 +/
Сообщение от OpenEcho (?), 07-Янв-23, 22:13 
> А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал
> фигню, но вы мне убедительно показали что был не прав.".

У меня проблем нет быть признательным и признавать свои ошибки, буду только рад если кто-то поправит, но только не на примерах ХелоВорлд. На сегодняшний день полагаться на то, что можно сложный проект слинковать с glibc без сюрпризов - не реально. Попробуйте собрать статически пых с расширениями(!), потом поговорим


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

257. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 10-Янв-23, 02:19 
> Писос ты бездарь... Самому сложно было трайнуть? Даже гуглить не надо, все
> выше написано.
> Да без проблем. Минута времени:

Ну давай, "не" писос, попробуй:

https://www.opennet.me/openforum/vsluhforumID3/129432.html#256

> А теперь просим выступить на бис с заявлением "извините, коллеги, облажался. написал
> фигню, но вы мне убедительно показали что был не прав.".

^^^

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

211. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от pavlinux (ok), 06-Янв-23, 21:56 
> А теперь, чуть посложней пожалуйста

https://github.com/pavlinux/ctorrents-plx


...
LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto

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

226. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от Аноним (226), 07-Янв-23, 08:54 
> https://github.com/pavlinux/ctorrents-plx

Хренакс, у каркуши даже что-то дельное в репах было.

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

237. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 07-Янв-23, 19:57 
>> А теперь, чуть посложней пожалуйста
> https://github.com/pavlinux/ctorrents-plx
> ...
> LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto

ldd ctorrent
    linux-vdso.so.1 (0x00007ffc64275000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc1cff00000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1cfd7d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1cfbbd000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc1cff9f000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1cfb9c000)

Это - НЕ СТАТИКА

Должно быть: not a dynamic executable

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

249. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от pavlinux (ok), 08-Янв-23, 19:58 
>[оверквотинг удален]
>> LIBS :=-L. -static-libstdc++ -static-libgcc -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto
> ldd ctorrent
>  linux-vdso.so.1 (0x00007ffc64275000)
>  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc1cff00000)
>  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1cfd7d000)
>  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1cfbbd000)
>  /lib64/ld-linux-x86-64.so.2 (0x00007fc1cff9f000)
>  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1cfb9c000)
> Это - НЕ СТАТИКА
> Должно быть: not a dynamic executable

Давно это было, задача была от libstdc++ избавиться.
libc статиком - не проблема, только нафига если она
в системе юзается другими.


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

258. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от OpenEcho (?), 10-Янв-23, 02:24 
>только нафига если она
> в системе юзается другими.

Далеко не везде есть glibc, как самый яркий пример Alpine Linux, где даже правильно скомпилированный статически исходник ликнутый с glibc работаь не будет, в то время когда настоящий статический бинарник будет работать на всех версиях внутри платформы


Пример: https://www.opennet.me/openforum/vsluhforumID3/129432.html#256

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

266. "Представлен Blink, эмулятор x86-64, опережающий QEMU по прои..."  +/
Сообщение от Аноним (266), 10-Янв-23, 23:20 
> libc статиком - не проблема, только нафига если она
> в системе юзается другими

Банально — к примеру, у меня есть сборочный хост с glibc 2.32 и я хочу собирать на нём один портативный бинарник, который бы будет запускаться на любом LTS линуксе.

Собираю и получаю падение на CentOS 7, потому что символы всё равно берутся из glibc, но версия символов не совпадает с рантаймом.

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

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

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




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

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