Update on modules implementation

Jose E. Marchesi jemarch@gnu.org
Thu Nov 20 00:47:33 GMT 2025


Ok so tonight the modularized godcc finally compiled and linked
properly:

  $ make
  Making all in src
  make[1]: Entering directory '/home/jemarch/gnu/hacks/godcc/build/src'
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o utils.o ../../src/utils.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o argp.o ../../src/argp.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o http.o ../../src/http.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o json.o ../../src/json.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o ce.o ../../src/ce.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o list.o ../../src/list.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o compile.o ../../src/compile.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o format.o ../../src/format.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2 -c -o godcc.o ../../src/godcc.a68
  ga68 -fcheck=nil -Whidden-declarations=prelude -g -O2   -o godcc utils.o argp.o http.o json.o ce.o list.o compile.o format.o godcc.o  
  make[1]: Leaving directory '/home/jemarch/gnu/hacks/godcc/build/src'

The built godcc runs, but some of the operations lead to a segfault.  I
launched GDB, and as you can see below the DWARF we generate is not
totally bollocks, as I can get some useful info and also a backtrace:

  $ gdb ./src/godcc
  [...]
  (gdb) set args list languages
  (gdb) run
  Starting program: /home/jemarch/gnu/hacks/godcc/build/src/godcc list languages
  
  Program received signal SIGSEGV, Segmentation fault.
  __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:396
  396	../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory.
  (gdb) up
  #1  0x0000000000408f8c in CE_ceconnect () at ../../src/ce.a68:47
  47	              if (ce_socket := fconnect (ce_host, ce_port)) = -1
  (gdb) bt
  #0  __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:396
  #1  0x0000000000408f8c in CE_ceconnect () at ../../src/ce.a68:47
  #2  0x000000000040b21b in listlanguages () at ../../src/list.a68:29
  #3  0x000000000040bc4d in routine4212 (pos=4, arg=...) at ../../src/list.a68:77
  #4  0x00000000004028aa in ARGP_argp (p=p@entry=3, opts=..., 
      noopthandler=noopthandler@entry=0x40bbb0 <routine4212>, 
      errorhandler=errorhandler@entry=0x40ad20 <LIST_error>) at ../../src/argp.a68:86
  #5  0x000000000040c157 in LIST_godcclist (pos=pos@entry=3) at ../../src/list.a68:75
  #6  0x000000000040f07a in routine4131 (pos=3, nooptarg=...) at ../../src/godcc.a68:100
  #7  0x00000000004028aa in ARGP_argp (p=p@entry=2, opts=..., noopthandler=noopthandler@entry=0x7fffffffe599, 
      errorhandler=errorhandler@entry=0x7fffffffe5ed) at ../../src/argp.a68:86
  #8  0x000000000040fbf2 in __algol68_main () at ../../src/godcc.a68:94
  #9  0x00000000004011ab in main (argc=<optimized out>, argv=<optimized out>) at ../../../libga68/libga68.c:50

At this point we definitely should start with the GDB support...  I want
to see what is in ce_host ^^

Salud!


More information about the Algol68 mailing list