[make-initrd] [PATCH 1/3] Reimplement ueventd

Alexey Gladkov legion at altlinux.ru
Sun May 14 23:45:15 MSK 2023


On Sun, May 14, 2023 at 11:12:22PM +0300, Leonid Krivoshein wrote:
> Привет!
> 
> 
> On 5/4/23 16:42, Alexey Gladkov wrote:
> > [...]
> > diff --git a/datasrc/ueventd/ueventd.h b/datasrc/ueventd/ueventd.h
> > new file mode 100644
> > index 00000000..a5e50379
> > --- /dev/null
> > +++ b/datasrc/ueventd/ueventd.h
> 
> К этому заголовочному файлу возникла пара вопросов.
> 
> > @@ -0,0 +1,76 @@
> > +/* SPDX-License-Identifier: GPL-2.0-or-later */
> > +
> > +#ifndef __UEVENTD_H__
> > +#define __UEVENTD_H__
> > +
> > +#include <sys/types.h>
> > +#include <stdint.h>
> > +
> > [...]
> > +
> > +/* path.c */
> > +#include <dirent.h>
> > +
> > [...]
> > +
> > +/* process.c */
> > +extern pid_t waitpid_retry(pid_t pid, int *wstatus, int options);
> > +
> > +#include <dirent.h>
> 
> 1) Что <dirent.h> повторяется дважды, конечно не проблема. Но вообще это 
> необычно выглядит, когда заголовочные файлы упоминаются в чередовании с 
> остальным кодом. Обычно они все выносятся наверх, потому и заголовочные. 
> Такой подход убережёт от понимания ошибок компилятора при появлении в 
> дальнейшем конфликтов в именах между твоим и библиотечным кодом.

Я так делаю чисто для удобства чтобы понимать, что include не нужен
определениям выше. Когда портянка include собрана сверху, то не всегда
ясно для чего include добавлен. Но для меня это совершенно не критично.

> 
> > +
> > +extern  int is_dot_dir(struct dirent *ent) __attribute__((nonnull(1)));
> > +
> > +/* logging.c */
> > +#include <unistd.h>
> > +#include <syslog.h>
> > +#include <stdlib.h>
> > +
> > [...]
> > +
> > +#endif /* __UEVENTD_H__ */
> 
> 2) Понятно, что код чисто Си-шный и никому пока "снаружи" (ueventd) не 
> требуется. Просто, опять же, привычно видеть тут совместимость с 
> "плюсовой обёрткой". Возможно, так задумано, чтобы слинковаться с твоим 
> кодом можно было только для Си-шных программ.

В make-initrd у меня нет ни одной программы на с++ и я на нём не пишу.
Когда будет хоть один запрос на использование с++ и когда пользователь
сможет это обосновать, то обязательно добавлю всё необходимое.

-- 
Rgrds, legion



More information about the Make-initrd mailing list