davidgiven / ack

The Amsterdam Compiler Kit
http://tack.sf.net
Other
416 stars 59 forks source link

cannot find DFLAGS: error building on Ubuntu 22.04.1 LTS x86_64 #275

Closed neozeed closed 1 year ago

neozeed commented 1 year ago

util/LLgen+headers
util/LLgen+llgen/main/LLgen
util/LLgen+llgen/main/Lpars
util/LLgen+llgen/main/alloc
util/LLgen+llgen/main/cclass
util/LLgen+llgen/main/check
util/LLgen+llgen/main/compute
util/LLgen+llgen/main/gencode
util/LLgen+llgen/main/global
util/LLgen+llgen/main/machdep
util/LLgen+llgen/main/main
util/LLgen+llgen/main/name
util/LLgen+llgen/main/reach
util/LLgen+llgen/main/savegram
util/LLgen+llgen/main/sets
util/LLgen+llgen/main/tokens
util/LLgen+llgen/main/utils
util/LLgen+llgen/main
util/LLgen+llgen
/usr/bin/ld: cannot find DFLAGS: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [/tmp/ack-build/build.make:348: util/LLgen+llgen-IMPL] Error 1
make[1]: Leaving directory '/tmp/ack'
make: *** [Makefile:107: build-plus-goals] Error 2 ```

I have tried forcing 32bit or letting it run native (x86_64) but regardless it's always seemingly failing looking for DFLAGS.
neozeed commented 1 year ago

output of make -d


                                  Avoiding implicit rule recursion.
                                  Trying pattern rule with stem 'utils.y'.
                                  Trying implicit prerequisite 'util/LLgen/src/utils.y,v'.
                                  Trying pattern rule with stem 'utils.y'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.y,v'.
                                  Trying pattern rule with stem 'utils.y'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.y'.
                                  Trying pattern rule with stem 'utils.y'.
                                  Trying implicit prerequisite 'util/LLgen/src/s.utils.y'.
                                  Trying pattern rule with stem 'utils.y'.
                                  Trying implicit prerequisite 'util/LLgen/src/SCCS/s.utils.y'.
                                 Trying pattern rule with stem 'utils'.
                                 Trying implicit prerequisite 'util/LLgen/src/utils.l'.
                                 Looking for a rule with intermediate file 'util/LLgen/src/utils.l'.
                                  Avoiding implicit rule recursion.
                                  Trying pattern rule with stem 'utils.l'.
                                  Trying implicit prerequisite 'util/LLgen/src/utils.l,v'.
                                  Trying pattern rule with stem 'utils.l'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.l,v'.
                                  Trying pattern rule with stem 'utils.l'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.l'.
                                  Trying pattern rule with stem 'utils.l'.
                                  Trying implicit prerequisite 'util/LLgen/src/s.utils.l'.
                                  Trying pattern rule with stem 'utils.l'.
                                  Trying implicit prerequisite 'util/LLgen/src/SCCS/s.utils.l'.
                                 Trying pattern rule with stem 'utils'.
                                 Trying implicit prerequisite 'util/LLgen/src/utils.w'.
                                 Looking for a rule with intermediate file 'util/LLgen/src/utils.w'.
                                  Avoiding implicit rule recursion.
                                  Trying pattern rule with stem 'utils.w'.
                                  Trying implicit prerequisite 'util/LLgen/src/utils.w,v'.
                                  Trying pattern rule with stem 'utils.w'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.w,v'.
                                  Trying pattern rule with stem 'utils.w'.
                                  Trying implicit prerequisite 'util/LLgen/src/RCS/utils.w'.
                                  Trying pattern rule with stem 'utils.w'.
                                  Trying implicit prerequisite 'util/LLgen/src/s.utils.w'.
                                  Trying pattern rule with stem 'utils.w'.
                                  Trying implicit prerequisite 'util/LLgen/src/SCCS/s.utils.w'.
                                 Trying pattern rule with stem 'utils'.
                                 Rejecting impossible implicit prerequisite 'util/LLgen/src/utils.w'.
                                 No implicit rule found for 'util/LLgen/src/utils.c'.
                                 Finished prerequisites of target file 'util/LLgen/src/utils.c'.
                                No need to remake target 'util/LLgen/src/utils.c'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/cclass.h'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/extern.h'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/io.h'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/Lpars.h'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/sets.h'.
                                Pruning file '/tmp/ack-build/obj/util/LLgen/headers/types.h'.
                              Finished prerequisites of target file '/tmp/ack-build/obj/util/LLgen/llgen/main/utils/utils.o'.
                              Prerequisite 'util/LLgen+llgen/main/utils-IMPL' of target '/tmp/ack-build/obj/util/LLgen/llgen/main/utils/utils.o' does not exist.
                             No need to remake target '/tmp/ack-build/obj/util/LLgen/llgen/main/utils/utils.o'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/cclass.h'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/extern.h'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/io.h'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/Lpars.h'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/sets.h'.
                             Pruning file '/tmp/ack-build/obj/util/LLgen/headers/types.h'.
                           Finished prerequisites of target file '/tmp/ack-build/obj/util/LLgen/llgen/main/llgen/main.a'.
                           Prerequisite 'util/LLgen+llgen/main-IMPL' of target '/tmp/ack-build/obj/util/LLgen/llgen/main/llgen/main.a' does not exist.
                          No need to remake target '/tmp/ack-build/obj/util/LLgen/llgen/main/llgen/main.a'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/cclass.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/extern.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/io.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/Lpars.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/sets.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/types.h'.
                        Considering target file 'util/LLgen+llgen-IMPL'.
                         File 'util/LLgen+llgen-IMPL' does not exist.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/llgen/main/llgen/main.a'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/cclass.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/extern.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/io.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/Lpars.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/sets.h'.
                          Pruning file '/tmp/ack-build/obj/util/LLgen/headers/types.h'.
                         Finished prerequisites of target file 'util/LLgen+llgen-IMPL'.
                        Must remake target 'util/LLgen+llgen-IMPL'.
make[1]: Entering directory '/tmp/ack'
Putting child 0x56217c0159b0 (util/LLgen+llgen-IMPL) PID 2005 on the chain.
Live child 0x56217c0159b0 (util/LLgen+llgen-IMPL) PID 2005
Reaping winning child 0x56217c0159b0 PID 2005
Live child 0x56217c0159b0 (util/LLgen+llgen-IMPL) PID 2006
util/LLgen+llgen
Reaping winning child 0x56217c0159b0 PID 2006
Live child 0x56217c0159b0 (util/LLgen+llgen-IMPL) PID 2007
/usr/bin/ld: cannot find DFLAGS: No such file or directory
collect2: error: ld returned 1 exit status
Reaping losing child 0x56217c0159b0 PID 2007
make[1]: *** [/tmp/ack-build/build.make:348: util/LLgen+llgen-IMPL] Error 1
Removing child 0x56217c0159b0 PID 2007 from chain.
make[1]: Leaving directory '/tmp/ack'
Reaping losing child 0x55ca147732d0 PID 2004
make: *** [Makefile:107: build-plus-goals] Error 2
Removing child 0x55ca147732d0 PID 2004 from chain.```
davidgiven commented 1 year ago

That sounds like there's a $LDFLAGS instead of $(LDFLAGS) somewhere. I'll take a look, but until then, if you install the ninja build tool, I know it builds with that. (You'll need to do a make clean to make the build scripts autodetect it.)

neozeed commented 1 year ago

Guess it's not so optional...


116 tests failed to pass
116 were skipped (see build log for details)
0 timed out
0 failed

Test status: MILDLY PLEASED FACE (some tests were skipped, but the rest pass)
jsteve@piorun:/tmp/ack$```

After purging everything I added this to my system:

   sudo apt-get install lua5.4 lua-posix
   sudo apt-get install ninja-build
davidgiven commented 1 year ago

It's been forever since I've just the make-based build backend. I'm not surprised it's acting strangely. Also, wow, the generator script for make takes forever!

neozeed commented 1 year ago

looks like qemu-user is kind of important too


[10624/10624] first/testsummary.sh /tmp/ack-build/obj/...plat/pc86/tests/tests/pc86-StringTest_mod-testlog.txt

323 tests passed
0 tests failed to pass
0 were skipped (see build log for details)
0 timed out
0 failed

Test status: HAPPY FACE (all tests are passing)```