On 30/3/2023 2:07 am, Sebastian Huber wrote: > On 28.03.23 23:46, Chris Johns wrote: >> On 29/3/2023 5:36 am, Sebastian Huber wrote: >>> On 28.03.23 09:26, Chris Johns wrote: >>>> On 28/3/2023 6:20 pm, Sebastian Huber wrote: >>>>> On 28.03.23 09:03, Chris Johns wrote: >>>>>> On 28/3/2023 5:48 pm, Sebastian Huber wrote: >>>>>>> On 25.03.23 00:39, Chris Johns wrote: >>>>>>>> On 24/3/2023 7:32 pm, Sebastian Huber wrote: >>>>>>>>> On 23.03.23 20:07, Chris Johns wrote: >>>>>>>>>> On 24/3/2023 3:57 am, Sebastian Huber wrote: >>>>>>>>>>> On 23.03.23 17:52, Will wrote: >>>>>>>>>>>> Great idea to store this information in the executable itself. Does >>>>>>>>>>>> this >>>>>>>>>>>> need >>>>>>>>>>>> a RTEMS_TEST_STATE_LINK_ONLY test state or something similar for >>>>>>>>>>>> minimum.exe? >>>>>>>>>>> With the notes you can build the test. The test runner would look >>>>>>>>>>> at the >>>>>>>>>>> notes >>>>>>>>>>> and then decide if it makes sense to run the test or not. It could >>>>>>>>>>> still >>>>>>>>>>> run the >>>>>>>>>>> minimum.exe and see if it terminates. >>>>>>>>>> I welcome notes support. Thanks for adding it. >>>>>>>>>> >>>>>>>>>> How will we control and manage the notes we support? >>>>>>>>> In the new elfnote.h header file there are defines for the note type >>>>>>>>> (domain-specific integer). >>>>>>>> Great. >>>>>>>> >>>>>>>>>> Should we document the top level notes domains (?) with some we >>>>>>>>>> control and >>>>>>>>>> restrict and others users can use? For example `note.rtems.test`, >>>>>>>>>> `note.rtems.kernel`, `note.rtems.bsp`, and `note.rtems.user`? >>>>>>>>> The section name doesn't matter. You can divide the number space of >>>>>>>>> the >>>>>>>>> note >>>>>>>>> type for this. >>>>>>>> Does this mean we define the numbers or number ranges or is it left >>>>>>>> open? >>>>>>>> I am >>>>>>>> not sure I am following this bit. >>>>>>> The patch has this: >>>>>>> >>>>>>> #define ELF_NOTE_RTEMS_TYPE( _index ) ( ( _index ) + 0x10000 ) >>>>>>> >>>>>>> We basically have 32-bits available. We could also use something like >>>>>>> this: >>>>>>> >>>>>>> #define ELF_NOTE_RTEMS_BASE_TYPE( _index ) ( ( _index ) + 0x10000000 ) >>>>>>> >>>>>>> #define ELF_NOTE_RTEMS_TEST_TYPE( _index ) ( ( _index ) + 0x20000000 ) >>>>>>> >>>>>>> #define ELF_NOTE_RTEMS_USER_TYPE( _index ) ( ( _index ) + 0x30000000 ) >>>>>>> >>>>>>> ... >>>>>>> >>>>>> Nice. >>>>> Maybe we should also encode the data type here, for example: >>>>> >>>>> #define ELF_NOTE_DATA_TYPE_BOOL 0 >>>>> #define ELF_NOTE_DATA_TYPE_INT8 1 >>>>> #define ELF_NOTE_DATA_TYPE_UINT8 2 >>>>> #define ELF_NOTE_DATA_TYPE_INT16 3 >>>>> #define ELF_NOTE_DATA_TYPE_UINT16 4 >>>>> #define ELF_NOTE_DATA_TYPE_INT32 5 >>>>> #define ELF_NOTE_DATA_TYPE_UINT32 6 >>>>> #define ELF_NOTE_DATA_TYPE_INT64 7 >>>>> #define ELF_NOTE_DATA_TYPE_UINT64 8 >>>>> #define ELF_NOTE_DATA_TYPE_FLOAT32 9 >>>>> #define ELF_NOTE_DATA_TYPE_FLOAT32 10 >>>>> #define ELF_NOTE_DATA_TYPE_FLOAT64 11 >>>>> #define ELF_NOTE_DATA_TYPE_FLOAT64 12 >>>>> #define ELF_NOTE_DATA_TYPE_STRING 13 >>>>> #define ELF_NOTE_DATA_TYPE_BINARY 14 >>>>> >>>>> #define ELF_NOTE_RTEMS_BASE_TYPE( _data_type, _index ) \ >>>>> ( ( ( _data_type ) << 28 ) | ( ( _index ) + 0x1000000 ) ) >>>>> >>>>> This could be used by the host tool to more easily produce the right JSON >>>>> data. >>>>> >>>> Good idea. I cannot think of anything else as scoping would tend to reduce >>>> to a >>>> new type. >>> Another option would be to add a GNU note type for JSON data. The note >>> description would be an arbitrary JSON string. >> Wooo that is interesting. JSON can be useful in these situations. I like it. > > It looks like we are not the only ones needing such a thing. Nick Clifton > suggested to use this: > > https://systemd.io/ELF_PACKAGE_METADATA/ > > https://sourceware.org/pipermail/binutils/2023-March/126822.html
This is interesting and useful. I still think your notes support is needed. Between the addition of considered notes and DWARF you can tell a lot about the make up of an executable and that could form the base of a audit type check. For example all objects are built with the same compiler and ABI options. I see no point in saying a test has passed if the make up of the exe is not considered "correct". Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel