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 devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel