The default multilib for sh-linux is -m1, even though you can't run linux without virtual memory.
There is a patch, but it needs testing: http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00613.html -- Summary: sh-linux uses inefficient multilib Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org GCC target triplet: sh-linux OtherBugsDependingO 29842 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29849