For most projects, OS releases that ancient are not supported. It's the
code author using some base minimum for assumptions -- OSs from the past
35 years or so should be safe (dating from the 4.4 BSD release, to use
the strdup() example). Maybe that's the "code author not considering,"
but I'd say that's the result of the author simply not being interested
in something that old.
Bash ran on 4.3 BSD for a long time (and may still, I haven't checked with
that project maintainer in a while), and I ran bash-5.0 on OPENSTEP 4.2
because I like it, but I'd say those are exceptions.
I guess what I'm saying is that it's not the author's fault for not wanting
to support OS versions released, for a significant percentage, before they
were born. They have different priorities.
Sure, and I don't disagree. I was just using an old OS to make a point about corner cases; it would be just as applicable if I had a modern OS that for whatever reason lacked strdup(), or your personal favorite "but everyone has this!" function. You're not going to be able to cover all bases all the time, and I'm sure that there are plenty of code authors who aren't interested in formally supporting anything outside of the most common operating systems. If their autotools-based projects work on my other OS that's great, but it isn't the fault of autotools if the project isn't coded with my OS in mind.
-Henry