--start-lib gives following object files (before --end-lib) archive semantics. They are handy if you don't want to create archives for the semantics. Some build system makes use of this option as an optimization: after changes of object files, no archives need updating. % ld.lld a.o --start-lib b.o --end-lib % gold a.o --start-lib b.o --end-lib % ld.bfd a.o --start-lib b.o --end-lib ld.bfd: unrecognized option '--start-lib' ld.bfd: use the --help option for usage information --start-lib can not be nested in --start-group, vice versa.
This option can sometimes be more useful than a thin archive.
If this is implemented, an archive without an index can be parsed as a group of --start-lib object files. I have a write-up https://maskray.me/blog/2022-01-16-archives-and-start-lib