cgcc fails if it doesn't know about the system/OS as returned by `uname -s`. This creates a build failure for Debian since Hurd is one of their non-official 'ports' but unknown to cgcc. So, teach cgcc about 'GNU' (the OS/system name returned on Hurd) and add the few predefines used to identify it. Reported-by: Uwe Kleine-König <uwe@xxxxxxxxxxxxxxxxx> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- cgcc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cgcc b/cgcc index f3909ae89..9c3ac8ce5 100755 --- a/cgcc +++ b/cgcc @@ -274,6 +274,9 @@ sub add_specs { } elsif ($spec eq 'darwin') { return ' -D__APPLE__=1 -D__MACH__=1'; + } elsif ($spec eq 'gnu') { # Hurd + return &add_specs ('unix') . # So, GNU is Unix, uh? + ' -D__GNU__=1 -D__gnu_hurd__=1 -D__MACH__=1'; } elsif ($spec eq 'unix') { return ' -Dunix=1 -D__unix=1 -D__unix__=1'; } elsif ( $spec =~ /^cygwin/) { -- 2.20.0