SDCC ("sdcc" RPM) source package ships with a "device/non-free"
hierarchy. Its header indicate that it's generated from files with usage
restriction and thus can not be distributed under the terms of GPL.
The files are (mainly?) hardware descriptions -- addresses of memory
locations, their symbolic names and eventually bit field definitions
with symbolic names of the bits. I believe they're absolutely essential
for interoperability with other (proprietary) tools.
Here's an example, for a single supported device:
I am not actually sure whether the notice in the header is correct,
whether the definitions in question are copyrightable and would like a
lawyer opinion on that. (I'm also not sure whether the court decision on
Oracle v. Google case about Java API is relevant in this context.)
If the code in question is in fact non-free what would be the proper way
of creating free equivalents? Reading the existing code and datasheets
and writing down the symbols? Would processing them automatically do?
Also, maybe we ought to remove it from the source package as well in