Package Details: etherlab-ethercat 1.6.12-2

Git Clone URL: https://aur.archlinux.org/etherlab-ethercat.git (read-only, click to copy)
Package Base: etherlab-ethercat
Description: Kernel modules for IgH EtherCAT(R) Master component
Upstream URL: https://etherlab.org
Keywords: ethercat fieldbus
Licenses: GPL-2.0-only
Submitter: entidi
Maintainer: entidi
Last Packager: entidi
Votes: 1
Popularity: 0.000000
First Submitted: 2021-04-07 21:50 (UTC)
Last Updated: 2026-09-07 08:34 (UTC)

Latest Comments

1 2 3 Next › Last »

entidi commented on 2026-09-07 08:39 (UTC)

It's not that simple. This issue has been triggered by a change in the kernel:

https://gitlab.com/etherlab.org/ethercat/-/work_items/235

Try with the latest update (ab7996adb7d6).

pingplug commented on 2026-09-07 06:26 (UTC)

devices/generic.c: In function 'ec_gen_init_module':
devices/generic.c:440:9: error: implicit declaration of function 'strncpy' [-Wimplicit-function-declaration]
  440 |         strncpy(desc->name, netdev->name, IFNAMSIZ);
      |         ^~~~~~~
devices/generic.c:37:1: note: include '<string.h>' or provide a declaration of 'strncpy'
   36 | #include "ecdev.h"
  +++ |+#include <string.h>
   37 | 
devices/generic.c:440:9: warning: incompatible implicit declaration of built-in function 'strncpy' [-Wbuiltin-declaration-mismatch]
  440 |         strncpy(desc->name, netdev->name, IFNAMSIZ);
      |         ^~~~~~~
devices/generic.c:440:9: note: include '<string.h>' or provide a declaration of 'strncpy'

maybe add missing header file in prepare()?

entidi commented on 2026-05-07 05:15 (UTC)

Please, report upstream.

UweSauter commented on 2026-05-06 19:24 (UTC) (edited on 2026-05-06 19:32 (UTC) by UweSauter)

Looks like 1.6.9 does not build with GCC 16.1.1:


[…]
  CXX      ethercat-CommandVersion.o
  CXX      ethercat-CommandXml.o
  CXX      ethercat-DataTypeHandler.o
DataTypeHandler.cpp: In static member function ‘static size_t DataTypeHandler::interpretAsType(const DataType*, const std::string&, void*, size_t)’:
DataTypeHandler.cpp:187:17: error: no match for ‘operator>>’ (operand types are ‘std::stringstream’ {aka ‘std::__cxx11::basic_stringstream<char>’} and ‘char*’)
  187 |             str >> (char *) target;
      |             ~~~ ^~ ~~~~~~~~~~~~~~~
      |             |      |
      |             |      char*
      |             std::stringstream {aka std::__cxx11::basic_stringstream<char>}
  • there are 34 candidates
    DataTypeHandler.cpp:187:17:
      187 |             str >> (char *) target;
          |             ~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/16.1.1/sstream:42,
                 from /usr/include/c++/16.1.1/bits/quoted_string.h:40,
                 from /usr/include/c++/16.1.1/iomanip:55,
                 from DataTypeHandler.cpp:28:
    • candidate 1: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]’ (near match)
      /usr/include/c++/16.1.1/istream:176:7:
        176 |       operator>>(bool& __n)
            |       ^~~~~~~~
      • conversion of argument 1 would be ill-formed:
      • error: cannot bind non-const lvalue reference of type ‘bool&’ to a value of type ‘char*’
        DataTypeHandler.cpp:187:20:
          187 |             str >> (char *) target;
              |                    ^~~~~~~~~~~~~~~
    • candidate 2: ‘std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]’ (near match)
      /usr/include/c++/16.1.1/istream:180:7:
        180 |       operator>>(short& __n);
            |       ^~~~~~~~
      • conversion of argument 1 would be ill-formed:
      • error: invalid conversion from ‘char*’ to ‘short int’ [-fpermissive]
        DataTypeHandler.cpp:187:20:
          187 |             str >> (char *) target;
              |                    ^~~~~~~~~~~~~~~
              |                    |
              |                    char*
      • error: cannot bind rvalue ‘(short int)((char*)target)’ to ‘short int&’
[…]
    • candidate 34: ‘template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(basic_istream<_CharT, _Traits>&, _Get_time<_CharT>)’
      /usr/include/c++/16.1.1/iomanip:430:5:
        430 |     operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f)
            |     ^~~~~~~~
      • template argument deduction/substitution failed:
        •   mismatched types ‘std::_Get_time<_CharT>’ and ‘char*’
          DataTypeHandler.cpp:187:29:
            187 |             str >> (char *) target;
                |                             ^~~~~~
make[2]: *** [Makefile:1018: ethercat-DataTypeHandler.o] Error 1
make[2]: Leaving directory '/home/uwe/Desktop/Code/AUR/etherlab-ethercat/src/ethercat-1.6.9/tool'
make[1]: *** [Makefile:537: all-recursive] Error 1
make[1]: Leaving directory '/home/uwe/Desktop/Code/AUR/etherlab-ethercat/src/ethercat-1.6.9'
make: *** [Makefile:462: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

Should I report upstream or can this be solved here?

micwoj92 commented on 2026-02-09 06:37 (UTC)

Fyi kernel modules fail to build 6.19
https://gitlab.com/etherlab.org/ethercat/-/issues/200

micwoj92 commented on 2025-09-27 01:07 (UTC)

Thanks for fix. On my normal system it also built fine, I only encounted this issue in chroot.

entidi commented on 2025-09-26 09:41 (UTC)

Sorry about that: I'm unable to replicate but I'm not in a clean environment, so I suspect the linux-headers dependency is not installed before the build.

Please, could you try the last PKGBUILD (etherlab-ethercat-1.6.7-6)? In 133acc3dedda I moved that dependency to the root makedepends.

micwoj92 commented on 2025-09-25 22:11 (UTC)

When trying to build in clean chroot this fails with

checking whether to build kernel modules... yes

configure: error: Failed to find Linux sources. Use --with-linux-dir!
==> ERROR: A failure occurred in build().
    Aborting...

entidi commented on 2025-09-25 06:18 (UTC)

I split the dkms version on its own package (etherlab-ethercat-dkms). This simplifies a lot the PKGBUILD code.

entidi commented on 2025-09-15 10:10 (UTC) (edited on 2025-09-15 10:10 (UTC) by entidi)

That explains it: linux-zen-headers installs the headers under /usr/src/linux-zen, so the if branch fails.

For non-standard headers or dynamic module autoupdate, please use etherlab-ethercat-dkms instead. In short:

etherlab-ethercat = modules bound to current kernel under /usr/src/linux
etherlab-ethercat-dkms = modules dynamically built via dkms