Продолжаем исправлять coreutils в защищённом режиме E2k

Тест date-debug не срабатывает в ЗР из-за какой-то проблемы внутри gnulib:

./date --debug -d 'TZ="America/Edmonton" 2006-04-02 02:30:00'

date: parsed date part: (Y-M-D) 2006-04-02
date: parsed time part: 02:30:00
date: input timezone: TZ="America/Edmonton" in date string
date: using specified time as starting value: '02:30:00'
date: error: invalid date/time value:
Недопустимая инструкция

Оставим эту проблему на потом.

Программа pr валится с недопустимой инструкцией на:

pr --date-format="-- Date/Time --" -h x -b -3 './tests/pr/0Ft'

По поводу патча для randread.c мне сказали, что в курсе о использовании неинициализированной памяти, и это нормально. Поэтому патч пришлось переделать на e2k-специфический:

diff --git a/gl/lib/randread.c b/gl/lib/randread.c
index 8e6b1c5b8..ccad16bc3 100644
--- a/gl/lib/randread.c
+++ b/gl/lib/randread.c
@@ -132,7 +132,13 @@ static struct randread_source *
 simple_new (FILE *source, void const *handler_arg)
 {
   struct randread_source *s = xmalloc (sizeof *s);
+  #ifdef __e2k__
+  if (sizeof(void*) == 16)
+  {
+    // In E2K protected mode uninitialized memory can't be used
+    memset(s, 0, sizeof *s);
+  }
+  #endif
   s->source = source;
   s->handler = randread_error;
   s->handler_arg = handler_arg;