Default signed/unsigned is not a platform convention but a compiler one. You can change it with a compiler switch, in the makefile.
The people who say that char is de facto signed and everyone should just deal with it, are the people who end up writing broken code.