forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #41  
Старый 22.01.2017, 11:11
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию flow-tools

Victor Sudakov написал(а) к Eugene Grosbein в Jan 17 13:48:50 по местному времени:

Dear Eugene,

22 Jan 17 05:51, you wrote to me:

EG>>> Проблема, конечно, есть, но патч в таком виде вряд ли примут.
VS>> Разобраться глубже мне знаний не хватит. Не примут так не примут.

EG> В https://clang.llvm.org/get_started.html читаем:

EG> The 'clang' driver is designed to work as closely to GCC as possible
EG> to maximize portability. The only major difference between the two is
EG> that Clang defaults to gnu99 mode while GCC defaults to gnu89 mode. If
EG> you see weird link-time errors relating to inline functions, try
EG> passing -std=gnu89 to clang.

EG> И таки да, это помогает. Однострочный патч и всё собирается:

EG> - --- net-mgmt/flow-tools/files/patch-configure.orig 2017-01-22
EG> 06:49:30.552992000 +0700
EG> +++ net-mgmt/flow-tools/filespatch-configure 2017-01-22
EG> 06:49:35.656530000 +0700 @@ -5,7 +5,7 @@


EG> -CFLAGS="-g -Wall"
EG> -+CFLAGS="-fPIC"
EG> ++CFLAGS="-fPIC -std=gnu89"

Подтверждаю, так собирается.

EG> Запули его в свой PR, не забудь поставить галку obsoletes

А ты сам его не запулишь в мой PR, тебе честь будет?


Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20160322-b20160322
Ответить с цитированием
  #42  
Старый 22.01.2017, 12:41
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Eugene Grosbein написал(а) к Victor Sudakov в Jan 17 14:10:46 по местному времени:

22 янв 2017, воскресенье, в 14:48 NOVT, Victor Sudakov написал(а):

VS> Подтверждаю, так собирается.
EG>> Запули его в свой PR, не забудь поставить галку obsoletes
VS> А ты сам его не запулишь в мой PR, тебе честь будет?

У меня этой "чести" уже over 333 PR-а... Добавил, хотя я не могу
обсолетить чужие патчи. Плюс надо было с самого начала в CC List
этого PR добавить маинтейнера порта, чтобы к нему все комментарии
приходили.

Eugene
--
Поэты - страшные люди. У них все святое.
--- slrn/1.0.2 (FreeBSD)
Ответить с цитированием
  #43  
Старый 22.01.2017, 13:11
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию flow-tools

Victor Sudakov написал(а) к Eugene Grosbein в Jan 17 15:49:26 по местному времени:

Dear Eugene,

22 Jan 17 14:10, you wrote to me:

VS>> Подтверждаю, так собирается.
EG>>> Запули его в свой PR, не забудь поставить галку obsoletes
VS>> А ты сам его не запулишь в мой PR, тебе честь будет?

EG> У меня этой "чести" уже over 333 PR-а... Добавил, хотя я не могу
EG> обсолетить чужие патчи.

Я сделал.

EG> Плюс надо было с самого начала в CC List
EG> этого PR добавить маинтейнера порта, чтобы к нему все комментарии
EG> приходили.

Черт, я полагал, что если в описании порта поставить "origin/portname:", то оно само маинтейнера оповещает.

Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20160322-b20160322
Ответить с цитированием
  #44  
Старый 22.01.2017, 13:20
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Alex Korchmar написал(а) к Eugene Grosbein в Jan 17 11:58:04 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:

EG> to maximize portability. The only major difference between the two is that
EG> Clang defaults to gnu99 mode while GCC defaults to gnu89 mode.
еще бы кто осилил прочитать оба и разобраться, правильное ли это поведение.

EG> И таки да, это помогает. Однострочный патч и всё собирается:
просто он точно так же не лечит проблему, а загоняет мусор под коврик.

Но идею надо взять на заметку, вероятно, это не единственное чем
они различаются.


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #45  
Старый 23.01.2017, 14:51
Konstantin Stefanov
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Konstantin Stefanov написал(а) к Alex Korchmar в Jan 17 13:29:12 по местному времени:

From: Konstantin Stefanov <cstef@mail.ru>

On 21.01.2017 18:36, Alex Korchmar wrote:
> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:
>
> VS>>> Помогло, спасибо.
> VS>>> https://bugs.freebsd.org/bugzilla/sh....cgi?id=216317
> AK>> учти, что скорее всего это неправильное решение
> EG> +1
> EG> Проблема, конечно, есть, но патч в таком виде вряд ли примут.
> он ничего не портит - в смысле, это проблема в руках автора, просто gcc
> такие "инлайны" автоматически игнорирует, все для удобства пользователей с
> кривыми руками.
> Репортить надо в llvm, что у них компилятор недостаточно изогнут.
> Завтра я объявлю переменную register, а он посчитает что регистров не хватило,
> и выведет мне стопиццот неверных сообщений о том что переменная вообще не
> определена? inline - точно такой же хинт для компилятора.
Не совсем хинт. inline по стандарту (С99 и выше) говорит, что для такой
функции не надо выдавать внешний символ. clang тут себя ведет по
стандарту, отчего и ошибка. Чтобы внешний символ появился, нужно
написать extern inline.
Но поскольку в стандарте inline появился поздно, в gnu успели придумать
свое, что не пошло в стандарт один в один.

http://stackoverflow.com/questions/216510/extern-inline

Единственный переносимый способ - писать в .h-файле static inline.

А с точки зрения того, инлайнить функцию или нет - inline действительно
хинт. Да и не всякую функцию можно заинлайнить.

--
Константин Стефанов

Flying isn't dangerous. Crashing is what's dangerous.
--- ifmail v.2.15dev5.4
Ответить с цитированием
  #46  
Старый 23.01.2017, 16:41
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Alex Korchmar написал(а) к Konstantin Stefanov в Jan 17 15:20:17 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Konstantin Stefanov <cstef@mail.ru> wrote:

KS> Не совсем хинт. inline по стандарту (С99 и выше) говорит, что для такой
KS> функции не надо выдавать внешний символ. clang тут себя ведет по
а, то есть кто-то его все же читал, йасно.
Довольно неожиданный побочный эффект.

KS> А с точки зрения того, инлайнить функцию или нет - inline действительно
KS> хинт. Да и не всякую функцию можно заинлайнить.
ну просто это стандартно-привычное поведение си-компилятора, совет послушать
и сделать наоборот...э...как получится, в общем. У gcc, как обычно, есть
дополнительный флаг, без которого он все инлайны дублирует неинлайновыми
копиями чисто вот на всякий случай, вдруг откуда-то позовут.


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #47  
Старый 23.01.2017, 17:40
Konstantin Stefanov
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Konstantin Stefanov написал(а) к Alex Korchmar в Jan 17 16:21:49 по местному времени:

From: Konstantin Stefanov <cstef@mail.ru>

On 23.01.2017 15:20, Alex Korchmar wrote:
> KS> А с точки зрения того, инлайнить функцию или нет - inline действительно
> KS> хинт. Да и не всякую функцию можно заинлайнить.
> ну просто это стандартно-привычное поведение си-компилятора, совет послушать
> и сделать наоборот...э...как получится, в общем. У gcc, как обычно, есть
> дополнительный флаг, без которого он все инлайны дублирует неинлайновыми
> копиями чисто вот на всякий случай, вдруг откуда-то позовут.
Гнушники, когда делали свой inline (за 10 лет до стандарта) подумали: а
давайте мы сделаем inline чисто хинтом. Т.е. его присутствие подскажет
компилятору, что можно заинлайнить, но само по себе ничего не сломает.
Никаких флагов, по умолчанию. В принципе разумно в отсутствие стандарта.
А для вариант "чисто инлайн" оставили static inline.

А те, кто делал стандарт, решили, что нефиг, инлайн так инлайн, и нефиг
такую функцию вообще экспортировать. А уж если хочешь еще и копию на
экспорт, добавь extern, что типа ты согласен, что будет версия для
экспорта в любом случае.

Это вроде примерно то же, что ты сказал, только я про флаг не понял,
вроде в этом месте у gcc никаких доп флагов нет, разве только
переключить стандарт.

--
Константин Стефанов

Беря интеграл, помни: он не твой, а Римана.
--- ifmail v.2.15dev5.4
Ответить с цитированием
  #48  
Старый 24.01.2017, 15:11
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: flow-tools

Alex Korchmar написал(а) к Konstantin Stefanov в Jan 17 13:46:50 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Konstantin Stefanov <cstef@mail.ru> wrote:

KS> Это вроде примерно то же, что ты сказал, только я про флаг не понял,
у gcc стандартное поведение - наткнувшись на inline и осилив его инлайновость,
все равно рядом положить обычную функцию - в том числе и для того, чтобы было
что потом отложить в .a
Есть флаг, делающий инлайны строго инлайновыми (если осилили) - соответственно,
линковать становится просто нечего.


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:33. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot