Size: a a a

2020 November 06

TT

Test For Test in OpenBSD
Пройти сертификацию fsf)
источник

АВ

А зачем Вам in OpenBSD
Зачем?
источник

TT

Test For Test in OpenBSD
Дистр делаем
источник

N

Noiseless in OpenBSD
это всегда было имхо бессмысленной конструкцией. и приложений под debian/kfreebsd было собрано много меньше, нежели под дебиан и фряху по отдельности
источник

TT

Test For Test in OpenBSD
И обязательное требование - пройти сертификацию gnu
источник

N

Noiseless in OpenBSD
зовите санитаров
источник

АВ

А зачем Вам in OpenBSD
Linux + musl + openbsd user space ?
источник

TT

Test For Test in OpenBSD
Нет😂
источник

TT

Test For Test in OpenBSD
Я хочу собрать openbsd применяя библиотеку musl-gcc, вместо gcc
источник

N

Noiseless in OpenBSD
ебануться. извините. не удержался.
источник

АВ

А зачем Вам in OpenBSD
Там bsd libc и clang
источник

TT

Test For Test in OpenBSD
И?
источник

АВ

А зачем Вам in OpenBSD
Ты в misc@ еще напиши
источник
2020 November 07

АВ

А зачем Вам in OpenBSD
источник

АВ

А зачем Вам in OpenBSD
привыкай, тут тебе не линукс, тут есть документация и она хорошая)
источник

AK

Artsiom Karakin in OpenBSD
А теперь самый важный вопрос зачем ?
источник

AK

Artsiom Karakin in OpenBSD
И зачем вам в дистрибутиве OpenBSD стандартная библиотека линукса, вы её просто так от ядра не оторвёте.
источник

EL

Emerald L. Greene in OpenBSD
Если у человека достаточно высокий IQ, может и сделает, интересно посмотреть что получится.
источник

EL

Emerald L. Greene in OpenBSD
Вон школьники пытаются сделать гибрид fuchsia & linux, тоже интересно что получится: https://dahliaos.io/
источник

AK

Artsiom Karakin in OpenBSD
А вот в чём собственно проблема. Открываем исходники библиотеки, а именно строку 24 файла fopen.c [1]
Что мы там видим ? Строку  __syscall(SYS_fcntl, fd, F_SETFD, FD_CLOEXEC);
Функция syscall. Системный вызов к линуксовому ядру. Отбросим последние три аргумента, они про дескриптор файла, который открывается функцией fopen(3).  Смотрим на SYS_fcntl. Что же это такое ? Напоминает какую-то константу по написанию. Ищём её всюду где можно найти по дереву исходников, её можно найти в нескольких местах, но я предлагаю.  В arch/powerpc/bitc/syscall.h [2] как видим, эта константа зависит от архитектуры. Она равна, допустим 55. Гуглим what is this numbers in syscall.h натыкаемся на страницу  мануалов [3] Там написано
syscall() is a small library function that invokes the system call
      whose assembly language interface has the specified number with the
      specified arguments.  Employing syscall() is useful, for example,
      when invoking a system call that has no wrapper function in the C
      library.

Что-то про ассемблер, хммм. Big thonk, head full. Номер системного вызова функция __syscall засунет в определённый регистр процессора [4] используя вставку ассемблерную.

ВСЁ. ВСЁ остальное происходит в линуксовом ядре. Ты не можешь использовать musl libc в OpenBSD потому что musl libc  очевидно, как стандарная библиотека определённой операционной системы, содержит в себе  код зависимый от этой определённой системы.

Для сравнения тот же SYS_fcntl в OpenBSD [5] имеет другой номер, тоже суется в определённый регистр(не уверен что в тот же), но заставляет исполнятся совершенно другой код ядра OpenBSD.

[1] : https://git.musl-libc.org/cgit/musl/tree/src/stdio/fopen.c#n24
[2]: http://git.musl-libc.org/cgit/musl/tree/arch/powerpc/bits/syscall.h.in#n56
[3]: https://man7.org/linux/man-pages/man2/syscall.2.html
[4]: http://git.musl-libc.org/cgit/musl/tree/arch/powerpc/syscall_arch.h#n62
[5]: https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/sys/syscall.h?rev=1.215&content-type=text/plain
источник