Opened 3 weeks ago

#1360 new defect

README instructions for building from git suggest setting LD_LIBRARY_PATH

Reported by: caolan Owned by:
Priority: major Milestone: someday
Component: unknown Version: 5.0
Keywords: Cc:
Estimated difficulty:


The README suggests doing this when using a bootstrap chicken that is not installed. Perhaps unsurprisingly, it doesn't work. I got the following make error when attempting to build this way:

LD_LIBRARY_PATH=/vagrant/chicken-4.12.0/ make PLATFORM=linux CHICKEN=/vagrant/chicken-4.12.0/chicken


/vagrant/chicken-4.12.0/chicken support.scm -optimize-level 2 -include-path . -include-path ./ -inline -ignore-repository -feature chicken-bootstrap -no-warnings -specialize -consult-type-file ./types.db  -no-lambda-info -no-trace  -emit-import-library -output-file support.c 
/vagrant/chicken-4.12.0/chicken: symbol lookup error: /vagrant/chicken-4.12.0/chicken: undefined symbol: C_srfi_2d1_toplevel
rules.make:873: recipe for target 'support.c' failed
make: *** [support.c] Error 127

Here is the relevant section from the README:

    2.2. Building from git

        If you build CHICKEN directly from the development sources out
        of the git repository, you will need a "chicken" executable to
        generate the compiled C files from the Scheme library

        If you are building in a checkout where you have built other
        versions of chicken, you need to make sure that all traces of
        the previous build are removed. "make clean" is insufficient,
        and you should do the following:

            make PLATFORM=<platform> spotless

        If you have a recent version of CHICKEN installed, then pass
        "CHICKEN=<chicken-executable>" to the "make" invocation to
        override this setting. "CHICKEN" defaults to "chicken".

        If you do not have a "chicken" binary installed, you will have
        to build from the closest release tarball to the git version
        you are trying to build (significantly older or newer ones are
        unlikely to work), and then use that chicken to build from
        your git sources. You don't need to install the release
        tarball chicken; simply unpack and build it in its own
        directory with "make PLATFORM=<platform>", then use it to
        build your git chicken like so:

            LD_LIBRARY_PATH=<release dir> make PLATFORM=<platform> \
              CHICKEN=<release dir>/chicken

        The LD_LIBRARY_PATH is needed on Linux to allow chicken to
        find libchicken; it may or may not be needed on your platform,
        but probably won't do any harm.

The solution for me was to install the chicken 4.12.0 I had built, then run "make PLATFORM=linux".

Change History (0)

Note: See TracTickets for help on using tickets.