git clone https://github.com/erlang/otp
cd otp
./otp_build autoconf
./configure --prefix=/mnt/utmp/codeblocks/usr --with-ssl=/mnt/utmp/codeblocks/usr
make
sudo make install
export XKB_CONFIG_ROOT=/usr/share/X11/xkb
#!/bin/bash
export XKB_CONFIG_ROOT=/usr/share/X11/xkb
i3
i3;i3;i3startup;killall i3
(cd ../decNumber; make)
CC decContext.c
CC decNumber.c
AR decNumber.a
#make zmq
make dps8.sha1.txt
make[2]: 'dps8.sha1.txt' is up to date.
make dps8
CC dps8_absi.c
In file included from dps8.h:55:0,
from dps8_absi.c:22:
dps8_math128.h:17:1: error: unable to emulate ���TI���
typedef int TItype __attribute__ ((mode (TI)));
^~~~~~~
dps8_math128.h:18:1: error: unable to emulate ���TI���
typedef unsigned int UTItype __attribute__ ((mode (TI)));
^~~~~~~
In file included from dps8.h:230:0,
from dps8_absi.c:22:
dps8_hw_consts.h: In function ���SIGNEXT72_128���:
dps8_hw_consts.h:118:37: warning: left shift count >= width of type [-Wshift-count-overflow]
#define SIGN72 ((word72)1U << 71)
^
dps8_hw_consts.h:291:13: note: in expansion of macro ���SIGN72���
if (w & SIGN72)
^~~~~~
dps8_hw_consts.h:293:58: warning: left shift count >= width of type [-Wshift-count-overflow]
return ((int128) w) | (int128) (((uint128) -1ll) << 72);
^~
dps8_hw_consts.h:117:38: warning: left shift count >= width of type [-Wshift-count-overflow]
#define ZEROEXT72 (((word72)1U << 72) - 1U) // mask to zero extend a 72 => 128 int
^
dps8_hw_consts.h:128:25: note: in expansion of macro ���ZEROEXT72���
#define MASK72 ZEROEXT72
^~~~~~~~~
dps8_hw_consts.h:295:16: note: in expansion of macro ���MASK72���
return w & MASK72;
^~~~~~
dps8_hw_consts.h:295:14: warning: conversion to ���int128 {aka int}��� from ���word72 {aka unsigned int}��� may change the sign of the result [-Wsign-conversion]
return w & MASK72;
^
dps8_hw_consts.h: In function ���SIGNEXT36_72���:
dps8_hw_consts.h:325:38: warning: left shift count >= width of type [-Wshift-count-overflow]
return (w | ((word72) DMASK) << 36) & MASK72;
^~
dps8_hw_consts.h:117:38: warning: left shift count >= width of type [-Wshift-count-overflow]
#define ZEROEXT72 (((word72)1U << 72) - 1U) // mask to zero extend a 72 => 128 int
^
dps8_hw_consts.h:128:25: note: in expansion of macro ���ZEROEXT72���
#define MASK72 ZEROEXT72
^~~~~~~~~
dps8_hw_consts.h:325:47: note: in expansion of macro ���MASK72���
return (w | ((word72) DMASK) << 36) & MASK72;
^~~~~~
../Makefile.mk:93: recipe for target 'dps8_absi.o' failed
make[2]: *** [dps8_absi.o] Error 1
Makefile:298: recipe for target 'locallibs_then_dps8' failed
make[1]: *** [locallibs_then_dps8] Error 2
make[1]: Leaving directory '/media/Pandora1/dev/multics/dps8m-code/src/dps8'
Makefile:11: recipe for target 'all' failed
make: *** [all] Error 2
typedef int TItype __attribute__ ((mode (TI)));
Mingw is a suite of tools ported to windows, including GCC, so building using mingw usually means building using gnu make and gcc. So any problems they had may well be transferable.@ptitSeb : yes I noticed that. I googled this issue, and it seems to be MinGW related (i.e people trying to compile the Multics simulator from Windows...). Since we're not (AFAIK) using MinGW on the Pandora, I thought maybe my little hacks to use GCC instead of Clang were responsible for that bug...
And one guy managed to compile this Multics simulator on his Raspberry Pi, so this should be ARM compatible IMHO...
The ARM processor on my Raspberry Pi is 32-bit, so routines had to be created for
the 64-bit math instructions. It appears that is the issue here. I'll see if I can
get some help.
An explanation of what is going on, but not a solution:
The emulator requires the 128 bit integer type to do the DPS8/M 72 bit double precision math.
The 32 bit clang compiler recognizes the 128 bit integer type; the 32 bit GCC compiler does not.
I am not familiar with Open Pandora; would it be feasible to cross-compile from a clang supporting host? Perhaps building the object files on that host and doing the linking on the Open Pandora platform ?
Use boost multiprecision maybe?Hi all
@ptitSeb and @levi : I received some replies from the multicians community:
Vince Scarafino (who ported the Multics simulator to the Raspberry Pi):
and Charles Anthony (who actually wrote the simulator):
Opinions ? Any secret trick up GCC's sleeves to solve this issue ? What about ARM intrinsics ?
Cheers, Magic Sam