Resolve "warning: no previous prototype for 'ec_master_nanosleep' [-Wmissing-prototypes] when i try 'sudo make modules'"
Closes#167
See merge request etherlab.org/ethercat!165
Currently, having multiple rtipc instances with the same
cache directory in one application does not work.
So we use one directory per master instance.
init.d support has been updated but the TeX files still reference some
old contents.
Fix all the `../script` folder references, avoid pointing to generated
files (that, depending on the configure options, may or may not exist)
and, while at it, refresh a bit the systemd/init.d documentations.
Without this patch, `./bootstrap` fails with the following error if
pkgconf/pkg-config is not installed:
lib/Makefile.am:76: error: 'pkgconfig_DATA' is used but 'pkgconfigdir' is undefined
This can be triggered by disinstalling `pkgconf/pkg-config`. The problem
here is that the check for `pkg-config` is done at configure level but
`automake` fails at bootstrap level because of the above error.
This basically "fixes" the issue by changing the way in which
`./bootstrap` fails.
Manually maintaining the table of contents relies on how HTML fragments
are generated, it is prone to errors (infact it is already out of sync)
and just plain boring.
Unfortunately there is no common agreement on all markdown flavours on
how the table of contents must be implemented. Here the `[[_TOC_]]` tag
has been used because it is supported by both GitLab and GitHub:
https://gitlab.com/gitlab-org/gitlab/-/issues/21901
In upstream Linux kernel commit:
3a00da027946cd08db1c1be2de4620950bbdf074 ("tty: make tty_operations::send_xchar accept u8 char")
The prototype of tty_operations->send_xchar() was changed from:
void (*send_xchar)(struct tty_struct *tty, char ch);
to:
void (*send_xchar)(struct tty_struct *tty, u8 ch);
This commit was merged in Linux 6.8, and therefore the
ec_tty_send_xchar() implementation needs to be changed to avoid the
following build failure:
/home/autobuild/autobuild/instance-7/output-1/build/igh-ethercat-1.6.2/./tty/module.c:751:19: error: initialization of "void (*)(struct tty_struct *, u8)" {aka "void (*)(struct tty_struct *, unsigned char)"} from incompatible pointer type "void (*)(struct tty_struct *, char)" [-Werror=incompatible-pointer-types]
751 | .send_xchar = ec_tty_send_xchar,
| ^~~~~~~~~~~~~~~~~
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
In upstream Linux kernel commits:
95713967ba52389f7cea75704d0cf048080ec218 ("tty: make tty_operations::write()'s count size_t")
69851e4ab8feeb369119a44ddca430c0ee15f0d8 ("tty: propagate u8 data to tty_operations::write()")
The prototype of tty_operations->write() was changed from:
int (*write)(struct tty_struct * tty,
const unsigned char *buf, int count);
to:
ssize_t (*write)(struct tty_struct *tty, const u8 *buf, size_t count);
Both of those commits were merged in Linux 6.6, and this needs an
update in tty/module.c to avoid the following build failure:
/home/autobuild/autobuild/instance-7/output-1/build/igh-ethercat-1.6.2/./tty/module.c:740:14: error: initialization of "ssize_t (*)(struct tty_struct *, const u8 *, size_t)" {aka "long int (*)(struct tty_struct *, const unsigned char *, long unsigned int)"} from incompatible pointer type "int (*)(struct tty_struct *, const unsigned char *, int)" [-Werror=incompatible-pointer-types]
740 | .write = ec_tty_write,
| ^~~~~~~~~~~~
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>