I updated to the latest "Simple Open EtherCAT Master" (SOEM) git and the build failed because gcc couldn't find <net/bpf.h>. This is weird because:
- <net/bpf.h> is where it shoud be;
- "gcc" had already compiled a source file that included <net/if.h> just before
it failed to find <net/bpf.h>.
To debug I turned off the "-j" (just because, it's irrelevant), saw the build
fail, then cut-and-pasted the "do-build" script to start debugging, and it
built and installed fine!
I verified my environment is squeaky-clean with a simple path and no
environment variables set that affect RTEMS or "make".
Here's what happened. I'm including the patch because I just noticed the one
file that is patched is the one that doesn't compile the first time.
++++++++++++
RTEMS Tools Project - Source Builder Error Report
Build: error: building soem-powerpc-rtems6-1
Command Line:
/home/dufault/development/rtems/rtems-source-builder/source-builder/sb-set-builder
--log=log_powerpc_soem --prefix=/opt/flatland/opt/rtems-6
--with-tools=/opt/flatland/opt/rtems-6 --host=powerpc-rtems6
--with-rtems-bsp=beatnik --no-clean --jobs=1 net/soem
Python: 2.7.5 (default, Nov 16 2020, 22:23:17) [GCC 4.8.5 20150623 (Red Hat
4.8.5-44)]
git://git.rtems.org/rtems-source-builder.git/origin/0d8c97323fd4ba024ad35896cee6670c4981543a
Linux gen6 3.10.0-1160.21.1.el7.x86_64 #1 SMP Tue Mar 16 18:28:22 UTC 2021
x86_64
Tail of the build log:
(...)
script: 92: cd ${build_top}
warning: soem.diff: no hash found
making dir:
/home/dufault/development/rtems/rtems-source-builder/source-builder/patches
script: 93: /bin/cat
/home/dufault/development/rtems/rtems-source-builder/source-builder/patches/soem.diff
| /usr/bin/patch -p1
(...)
rtems.cmake
-- Building for RTEMS
-- OS is rtems
-- LIB_DIR: /opt/flatland/opt/rtems-6/powerpc-rtems6/beatnik/lib
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/dufault/development/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/build-xc
+ make all
Scanning dependencies of target soem
[ 7%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.obj
[ 15%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.obj
[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.obj
[ 30%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.obj
[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.obj
[ 46%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.obj
[ 53%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.obj
[ 61%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.obj
[ 69%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.obj
[ 76%] Building C object CMakeFiles/soem.dir/osal/rtems/osal.c.obj
[ 84%] Building C object CMakeFiles/soem.dir/oshw/rtems/nicdrv.c.obj
/home/dufault/development/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/soem/oshw/rtems/nicdrv.c:37:10:
fatal error: net/bpf.h: No such file or directory
37 | #include <net/bpf.h>
| ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/soem.dir/oshw/rtems/nicdrv.c.obj] Error 1
make[1]: *** [CMakeFiles/soem.dir/all] Error 2
make: *** [all] Error 2
shell cmd failed: /bin/sh -ex
/home/dufault/development/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/do-build
error: building soem-powerpc-rtems6-1
---------
Note that it had already compiled "osal/rtems/osal.c" and that includes
<net/if.h>.
I cut-and-pasted the "do-build" line and it worked.
*The one thing I just noticed* is the single file I patch is the file that
fails to compile, that's why I don't apply it a second time in "do-build". It
does apply fine the first time around. Is that a clue?
++++++++++
[dufault@gen6 lou_files]$
/home/dufault/development/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/do-build
=> soem-powerpc-rtems6-1: BUILD
==> %prep:
patching file soem/oshw/rtems/nicdrv.c
Reversed (or previously applied) patch detected! Assume -R? [n] n
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file soem/oshw/rtems/nicdrv.c.rej
==> clean %{buildroot}:
/home/dufault/development/rtems/rtems-source-builder/rtems/build/tmp/soem-powerpc-rtems6-1-root-dufault
==> %build:
rtems.cmake
rtems.cmake
-- Building for RTEMS
-- OS is rtems
-- LIB_DIR: /opt/flatland/opt/rtems-6/powerpc-rtems6/beatnik/lib
-- Configuring done
-- Generating done
-- Build files have been written to:
/home/dufault/development/rtems/rtems-source-builder/rtems/build/soem-powerpc-rtems6-1/build-xc
[ 7%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.obj
[ 15%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.obj
[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.obj
[ 30%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.obj
[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.obj
[ 46%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.obj
[ 53%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.obj
[ 61%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.obj
[ 69%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.obj
[ 76%] Building C object CMakeFiles/soem.dir/osal/rtems/osal.c.obj
[ 84%] Building C object CMakeFiles/soem.dir/oshw/rtems/nicdrv.c.obj
[ 92%] Building C object CMakeFiles/soem.dir/oshw/rtems/oshw.c.obj
[100%] Linking C static library libsoem.a
[100%] Built target soem
==> %install:
(...)
-------------
Peter
-----------------
Peter Dufault
HD Associates, Inc. Software and System Engineering
This email is delivered through the public internet using protocols subject to
interception and tampering.
signature.asc
Description: Message signed with OpenPGP
_______________________________________________ devel mailing list [email protected] http://lists.rtems.org/mailman/listinfo/devel
