[devel] Что это? Переопределение функций?

Дмитрий Ханжин dmitriy.khanzhin на gmail.com
Пн Июл 31 21:56:02 MSK 2017


31.07.2017 13:52, Dmitry V. Levin пишет:
> Hi,
> 
> 
> Текущее состояние по добавлению strlcpy и strlcat в glibc:
> https://sourceware.org/ml/libc-alpha/2017-06/msg00703.html
> На данный момент остался только один человек, препятствующий принятию
> этого патча.  Ну что же, подождём ещё немного.
>

Вот что мне ответили:

> Thanks for your comment!
> If we modify the prototype declaration will it then not conflict with other distributions?
> __THROW is a preprocesor symbol which not all compilers may have?
> Similar for __nonnull.
> The declarations we have now originate from OpenBSD/FreeBSD.
> ALT Linux wants to improve on them and so introduces differences?
> Does ALT Linux have a preprocessor symbol by which we can identify it?
> Is there a way we can avoid the ALT Linux declaration from string.h?
> Could you perhaps attach the output of g++ -E /usr/include/string.h ?
> What would be harmless is if you add a extern "C" linkage specification.
> Would that suffice? Probably not.
> What does the ALT Linux team say?
> Sorry for all the questions.

Прокомментируйте, пожалуйста, я так глубоко не интересовался.
Вывод g++ -E /usr/include/string.h на предмет strlcpy и strlcat:

extern size_t strlcpy (char *__restrict __dest,
          const char *__restrict __src, size_t __n)

# 585 "string.h" 3 4
  throw () __attribute__ ((__nonnull__
# 585 "string.h"
          (2)
# 585 "string.h" 3 4
          ))
# 585 "string.h"
                         ;



extern size_t strlcat (char *__restrict __dest,
          const char *__restrict __src, size_t __n)

# 591 "string.h" 3 4
  throw () __attribute__ ((__nonnull__
# 591 "string.h"
          (2)
# 591 "string.h" 3 4
          ))
# 591 "string.h"
                         ;
Ссылку выше прочитал, но тоже ничего не понял. :-(
Прошу прощения.


Подробная информация о списке рассылки Devel