Hi!

This is a call for testers. Especially on those platforms which
are not exactly mainstream. That is: anything outside of one of
the popular Linux distros, which I used in a local setup.

The test won't take much time, build instructions are outlined in
the README which can be seen in this repo view. The set of shell
commands may even work out of the box for most setups.

  https://repo.or.cz/autotool-experiments.git

It'd help to learn whether any of the sigrok supported platforms
does not support the constructor attribute, or would not work
reliably. In that case either the build fails, or the screen
output won't reflect the configured set of drivers. This is how
users of "bleeding edge" distros noticed the unexpected build
output.

More details can be found in bug 1433. Which initially was
reported for LTO build configurations, motivated the creation of
the autotool-experiments repo, which then turned directions over
time. In the current implementation autotools don't matter any
longer, and linker magic became obsolete (neither scripts nor
sections involved any longer, just the constructor decoration).

  https://sigrok.org/bugzilla/show_bug.cgi?id=1433

The registration of several driver items from a single invocation
(done with an array in libsigrok build instructions) is still
missing in this experiment of mine. The current size of the set
of drivers (three in total) is limited and may not reliably catch
all flaky operation, but extending the set is simple and straight
forward. The increased runtime cost is considered negligable, is
only paid once during startup, and still is tiny compared to all
other init code of the drivers library.

If there is a better approach to the creation of the drivers list
then tell us more about it. The collection of pointers to driver
items by means of a linker segment doesn't count, this is what
currently is used, and serious concerns were raised. Neither does
the duplication of build instructions (optional dependencies,
user specified enable switches) inside C language code, which was
used in a past libsigrok implementation, and is tedious to
maintain and rather error prone. The linked list in the
experiment is used to eliminate the necessity for a fixed size
array, where exceeding its size could go unnoticed given the
highly dynamic set of drivers and their being optional. Is there
some other approach that is as promising as the constructors are?

Thank you for helping improve portability and maintenance!


virtually yours
Gerhard Sittig
--
     If you don't understand or are scared by any of the above
             ask your parents or an adult to help you.


_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to