Ok, figured out a few more things. The problem seems to be that libwinecrt0.a was compiled with `-fno-PIC`, and then gets linked into .so files that are being linked with `-fPIC`. The use of `-fno-PIC` for winecrt0 seems very much intentional per 8f732c66ab37b54c30d63c74f7822ba1d4f04996 (and indeed only for i386). https://bugs.winehq.org/show_bug.cgi?id=37540#c19 mentions a "suppress read only relocs workaround", but I'm not sure what it was, unless it's a reference to using `-read_only_relocs suppress`. But probably not, since that seems to have been for darwin-powerpc, and this change was only for x86. In any case, wine itself is being consistent, and linking with `-fno-PIC`: https://gitlab.winehq.org/wine/wine/-/blob/master/configure.ac#L813-814.
I see the warning, when wine did not, because my CMake toolchain for winegcc is adding -fPIC to its rules for SHARED and MODULE (.dll.so) files. So that seems to be on me.
And apparently I only see the warning in ubuntu, and not wind river, because it's a relatively new warning added in binutils 2.35: https://github.com/bminor/binutils-gdb/commit/a6dbf402de65fe66f4ec99b56527df...
So I think this patch is probably fine, and the fix is that I should have updated my CMake toolchain to know that wine >= 4.8 doesn't want builtin dll.so/.exe.so files to use `-fPIC` anymore.