Re: Getting started guide && ./src/configure.sh

dave seddon <[email protected]> Tue, 11 Nov 2025 10:45:18 -0800
Newsgroups dev.linux.lists.xdp2
Message-ID <CANypexSJVq4Y7iqutmKBn+HibuX8_pWkkd6Lqkmen0mMyfNpLw@mail.gmail.com>
Thanks Tom!

Sorry, I know this must have been time consuming.  That's great the
way you split it up.  I'll try for smaller commits going forward.

I just cloned "main" branch and retested
- Ubuntu24 ( cd src; ./conigure.sh; make clean; make; make install ) works
- Ubuntu25 ( cd src; ./conigure.sh; make clean; make; make install ) works
- Fedora42 ( make[2]: *** [Makefile:37: parsers/parser_big.p.c]
Segmentation fault (core dumped) ) - Which I know how to resolve

Do the samples work for you?


On Mon, Nov 10, 2025 at 3:46=E2=80=AFPM Tom Herbert <[email protected]> w=
rote:
>
> Hi Dave,
>
> I pushed your pull request. There were quite a bit of nice changes so
> I broke it up into eighteen patches. Please take a look when you have
> a chance.
>
> Tom
>
> On Sat, Nov 8, 2025 at 6:09=E2=80=AFPM dave seddon <dave.seddon.ca@gmail.=
com> wrote:
> >
> > Woot woot!  Ok, "make" and "make install" works on fedora42!  I made
> > some improvements to configure.sh, so I'll update the pull request
> >
> > ------------
> > xdp2 installed into directory: /home/das/xdp2/src/../install/x86_64
> > das@fedora42:~/xdp2/src$ cat /etc/fedora-release
> > Fedora release 42 (Adams)
> > ------------
> >
> > Not working on Fedora 43 still, but fedora 43 has python 3.14, rather
> > than 3.13.9 on fedora 42.  I've found that when stracing
> > parser_big.p.c does get written.  Without strace, it seems to
> > something python related causing the segfault.
> >
> > Anyway, big progress!
> >
> > On Fri, Nov 7, 2025 at 5:33=E2=80=AFPM dave seddon <dave.seddon.ca@gmai=
l.com> wrote:
> > >
> > > G'day,
> > >
> > > Some good news.  Using configure.sh, xdp2 compiles and installs
> > > happily on the latest Ubuntu 25.10 server.
> > >
> > > It turns out that on Ubuntu 25.10, the un-versioned and versioned
> > > packages are the same.  e.g. llvm20 is the default
> > >
> > > Ubuntu 25.10 using llvm ( no version )
> > > -------------
> > > das@ubuntu2510-no-nix:~/xdp2/src$ ./configure.sh
> > > Platform is default
> > > Architecture is x86_64
> > > Architecture includes for x86_64 not found, using generic
> > > Target Architecture is
> > > COMPILER is gcc
> > > LLVM_VER:20.1.8
> > > HOST_LLVM_CONFIG:/usr/bin/llvm-config-20
> > > XDP2_CLANG_VERSION=3D20.1.8
> > > XDP2_C_INCLUDE_PATH=3D/usr/lib/llvm-20/lib/clang/20/include
> > > XDP2_CLANG_RESOURCE_PATH=3D/usr/lib/llvm-20/lib/clang/20
> > >
> > > xdp2 installed into directory: /home/das/xdp2/src/../install/x86_64
> > >          <--- make install completes happily
> > > das@ubuntu2510-no-version:~/xdp2/src$
> > > -------------
> > >
> > > Ubuntu 25.10 using llvm20
> > > -------------
> > > xdp2 installed into directory: /home/das/xdp2/src/../install/x86_64
> > >          <--- make install completes happily
> > > das@ubuntu2510-no-nix:~/xdp2/src$
> > > -------------
> > >
> > > This is nice, because Ubuntu 25.10 has a much newer kernel and lots o=
f
> > > newer packages.  ( 25.10 also has a lot more of the new Rust stuff.
> > > E.g. Rust sudo, and they screwed up "date" )
> > > -------------
> > > das@ubuntu2510-no-nix:~/xdp2/src$ uname -a
> > > Linux ubuntu2510-no-nix 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMI=
C
> > > Tue Oct  7 13:34:17 UTC 2025 x86_64 GNU/Linux
> > > -------------
> > >
> > >
> > >
> > > The [less good] other news is that I also tried Fedora 42 and 43 (lat=
est).
> > >
> > > This command installs packages to satisfy the configure step
> > > -------------
> > > sudo dnf install -y \
> > >   gcc gcc-c++ make cmake ninja-build pkgconf-pkg-config bison flex \
> > >   boost-devel libpcap-devel python3-scapy graphviz \
> > >   elfutils-libelf-devel libbpf-devel bpftool \
> > >   llvm llvm-devel clang clang-libs clang-devel clang-tools-extra lld =
\
> > >   python3-devel \
> > >   kernel-devel kernel-headers kernel-tools perf
> > > -------------
> > >
> > > However, both end up with segfault.  This is the very same segfault
> > > that's occurring with the "nix develop" environment.
> > > -------------
> > > das@fedora43:~/xdp2/src$ make
> > >
> > > tools
> > > include/xdp2gen/llvm/patterns.h2... ok (mixed Cpp1/Cpp2, Cpp2 code
> > > passes safety checks)
> > >
> > > include/xdp2gen/ast-consumer/patterns.h2... ok (mixed Cpp1/Cpp2, Cpp2
> > > code passes safety checks)
> > >
> > >     CXX      src/main.o
> > >     CXX      src/template.o
> > >     EMBED    ../../templates/xdp2/c_def.cpp
> > >     CXX      ../../templates/xdp2/c_def.o
> > >     EMBED    ../../templates/xdp2/xdp_def.cpp
> > >     CXX      ../../templates/xdp2/xdp_def.o
> > >     EMBED    ../../templates/xdp2/common_parser.cpp
> > >     CXX      ../../templates/xdp2/common_parser.o
> > >
> > > include
> > >     MACROGEN _pmacro_gen.h
> > >     TBL_INC  _stable.h
> > >     TBL_INC  _dtable.h
> > >
> > > lib
> > >     CC       cli.o
> > >     AR       libcli.a
> > >     CC       siphash.o
> > >     CC       libsiphash.so
> > >     AR       libsiphash.a
> > >     CC       crc16.o
> > >     CC       crc32c.o
> > >     CC       crc64.o
> > >     CC       crcspeed.o
> > >     CC       libcrc.so
> > >     AR       libcrc.a
> > >     CC       flow_dissector.o
> > >     AR       libflowdis.a
> > >     CC       lzf_compress.o
> > >     CC       lzf_decompress.o
> > >     CC       liblzf_compress.so
> > >     AR       liblzf_compress.a
> > >     CC       liblzf_decompress.so
> > >     AR       liblzf_decompress.a
> > >     CC       murmur3_hash.o
> > >     CC       libmurmur3hash.so
> > >     AR       libmurmur3hash.a
> > >     CC       vstruct.o
> > >     CC       timer.o
> > >     CC       cli.o
> > >     CC       pcap.o
> > >     CC       packets_helpers.o
> > >     CC       dtable.o
> > >     CC       obj_allocator.o
> > >     CC       pvbuf.o
> > >     CC       pvpkt.o
> > >     CC       config_functions.o
> > >     CC       parser.o
> > >     CC       accelerator.o
> > >     CC       locks.o
> > > make[2]: *** [Makefile:37: parsers/parser_big.p.c] Segmentation fault
> > > (core dumped)            <---- Doh!!
> > > make[1]: *** [Makefile:11: xdp2] Error 2
> > > make: *** [Makefile:77: all] Error 2
> > > das@fedora43:~/xdp2/src$
> > > -------------
> > >
> > > -------------
> > > ..
> > >     CC       locks.o
> > > make[2]: *** [Makefile:37: parsers/parser_big.p.c] Segmentation fault
> > > (core dumped)
> > > make[1]: *** [Makefile:11: xdp2] Error 2
> > > make: *** [Makefile:77: all] Error 2
> > > das@fedora42:~/xdp2/src$
> > > -------------
> > >
> > > This actually makes me a little bit happy, because maybe this rules
> > > out NixOS?  More likely, there's something that is required, which
> > > configure isn't checking for, and whatever it is gets installed
> > > somehow on Ubuntu, but not on Fedora or NixOS.  This is a great clue.
> > >
> > > ... ok, that's enough fun for the day!  Happy Friday
> > >
> > > Thanks,
> > > Dave
> > >
> > >
> > > On Fri, Nov 7, 2025 at 10:41=E2=80=AFAM dave seddon <dave.seddon.ca@g=
mail.com> wrote:
> > > >
> > > > G'day,
> > > >
> > > > Thanks.
> > > >
> > > > Please let me know if the issue with the samples is between my seat
> > > > and keyboard :)  I could easily be doing something silly
> > > >
> > > > Yes, agreed automated testing is needed. - I could use some guidanc=
e
> > > > on roughly what the automated tests should do, beyond just a comple=
te
> > > > re-compile, and running samples.
> > > >
> > > > Thanks,
> > > > Dave
> > > >
> > > > On Fri, Nov 7, 2025 at 7:53=E2=80=AFAM Tom Herbert <tom@herbertland=
.com> wrote:
> > > > >
> > > > > On Thu, Nov 6, 2025 at 5:29=E2=80=AFPM dave seddon <dave.seddon.c=
[email protected]> wrote:
> > > > > >
> > > > > > G'day,
> > > > > >
> > > > > > I hope you are doing well
> > > > > >
> > > > > > Very exciting to see the Ultra Ethernet protocols being added!
> > > > > >
> > > > > > However, I suspect unintended "challenges" were introduced sinc=
e the
> > > > > > flake.nix was added.
> > > > > >
> > > > > > Upon review, I found that actually xdp2 was no longer working o=
n
> > > > > > ubuntu without nix.
> > > > > >
> > > > > > This pull request:
> > > > > >
> > > > > > - Adds a getting started guide ( note - sample compiles challen=
ges persist )
> > > > > > - Adds an experimental ./src/configure.sh designed as an altern=
ative
> > > > > > to the existing ./src/configure
> > > > > > ./src/configure creates a config.mk that works on Ubuntu ( no n=
ix )
> > > > > > using llvm or llvm20. ( The getting started guide explains that=
 Ubuntu
> > > > > > package naming makes supporting different llvm versions tricky.
> > > > > > configure.sh hopefully handles this correctly now. )
> > > > > > - ./src/configure.sh has extensive --debug_level 7 logging
> > > > > > - ./src/configure.sh modifies the test cpp code to support llvm=
 18 and 20
> > > > > > - Updates various Makefiles to allow the make variables to be p=
assed,
> > > > > > so -j$(nproc) works
> > > > > > - Enforces dependencies, so the builds work with -j$(nproc)
> > > > > >
> > > > > > This has been tested with ubuntu24.0.4.3 ( no nix ) using llvm =
and
> > > > > > llvm20, but I strongly encourage more testing
> > > > >
> > > > > Thanks Dave, I'll look at that.
> > > > >
> > > > > Also, it's clear we're going to need a nightly test suite sooner =
than later.
> > > > >
> > > > > Tom
> > > > >
> > > > > >
> > > > > > Happy to discuss
> > > > > >
> > > > > > I'm going to keep working on the flake.nix, because it's broken=
, and
> > > > > > this pull request marks the files as such
> > > > > >
> > > > > > https://github.com/xdp2-dev/xdp2/pull/11
> > > > > >
> > > > > > --
> > > > > > Regards,
> > > > > > Dave Seddon
> > > > > > +1 415 857 5102
> > > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > > Dave Seddon
> > > > +1 415 857 5102
> > >
> > >
> > >
> > > --
> > > Regards,
> > > Dave Seddon
> > > +1 415 857 5102
> >
> >
> >
> > --
> > Regards,
> > Dave Seddon
> > +1 415 857 5102



--=20
Regards,
Dave Seddon
+1 415 857 5102