Starting to Help with Erlang Source Code, compile issues

I’m starting to look at helping with source code updated, I started looking at issue:

So I pulled down a forked version of code and looking to do an initial build,
My git log from may branch

commit 873912bf8ab4def4a23dedb55389a374381422b8 (HEAD -> 5719_CommonTest_eating_stacktraces, origin/maint, maint)
Merge: c1409c3a9e e7a44a7447
Author: Sverker Eriksson <sverker@erlang.org>
Date:   Wed May 25 21:12:52 2022 +0200

    Merge PR-5987 from sverker/25/hopeful-in-fun-env/OTP-18093
    
    Accept incorrectly encoded fun containing export fun or bitstring

My steps for compiling are using default options:

 ./configure --prefix=/tmp/local_erl

But when I run make I get:

 LD	/home/src/otp/bin/x86_64-pc-linux-gnu/beam.jit
obj/x86_64-pc-linux-gnu/opt/jit/erl_db.o: In function `erts_rwmtx_size':
/home/src/otp/erts/emulator/beam/erl_threads.h:1889: undefined reference to `ethr_rwmutex_size'
/home/src/otp/erts/emulator/beam/erl_threads.h:1889: undefined reference to `ethr_rwmutex_size'
obj/x86_64-pc-linux-gnu/opt/jit/erl_db_hash.o: In function `erts_rwmtx_size':
/home/src/otp/erts/emulator/beam/erl_threads.h:1889: undefined reference to `ethr_rwmutex_size'
/home/src/otp/erts/emulator/beam/erl_threads.h:1889: undefined reference to `ethr_rwmutex_size'
/home/src/otp/erts/emulator/beam/erl_threads.h:1889: undefined reference to `ethr_rwmutex_size'
obj/x86_64-pc-linux-gnu/opt/jit/erl_db_hash.o:/home/src/otp/erts/emulator/beam/erl_threads.h:1889: more undefined references to `ethr_rwmutex_size' follow
collect2: error: ld returned 1 exit status
make[4]: *** [x86_64-pc-linux-gnu/Makefile:1254: /home/src/otp/bin/x86_64-pc-linux-gnu/beam.jit] Error 1
make[4]: Leaving directory '/home/src/otp/erts/emulator'
make[3]: *** [/home/src/otp/make/run_make.mk:35: opt] Error 2
make[3]: Leaving directory '/home/src/otp/erts/emulator'
make[2]: *** [Makefile:45: opt] Error 2
make[2]: Leaving directory '/home/src/otp/erts'
make[1]: *** [Makefile:60: jit] Error 2
make[1]: Leaving directory '/home/src/otp/erts'
make: *** [Makefile:496: emulator] Error 2

Wondering what I’m missing to do a pre-code change compile and install, Note: I get the same thing from master.

Also c++ files have not been updated since Feb 15.

Thanks for the help and getting going.

3 Likes

Ensure you have environment variable exported to the root of your erl tree:

ERL_TOP=`pwd`

It appears to point at /home/src/otp, which makes me think you have a Linux user named src.

2 Likes

I check and still was not working, so I changed to Ubuntu and followed required install stuff from the dockerfile run: otp/Dockerfile.ubuntu-base at maint · erlang/otp · GitHub

that is working fine.

Last question is when I compile to test the code. my io:format calls from the compiled erl engine look to be removed or something.

is there away to compile erlang in a “DEBUG” format so you get more verbose logging on run?

Thanks for the help, Just onboarding into coding on the erlang engine.

2 Likes

Common Test (the test framework used to test Erlang/OTP) captures all io:format calls and places them in the html log for that testcase. So I think that is where you want to look for the missing io:formats.

2 Likes

Thanks Garazdawi, I found that when doing some more digging on the html files. Thanks for all the help.

But I was able to get my first PR out to erlang to fix an issue though

:grinning: “small change but steps in learning the process”

3 Likes

Moved my listing of comments related to PR and Issue to the github issue. since compiling source code is good to go now.

Thanks again

2 Likes