1. Jeroen Ruigrok van der Werven
  2. tendra
  3. Issues
Issue #1 open

build issues

Anonymous created an issue

after i installed bmake (which seems to be very uncommon), i had a couple of troubles to build on amd64 first off, the makedefs failed to recognize my CPU architecture. then i edited Makefile.defs and placed "AMD64" as my arch and started make. that causes bmake to go wild and fork off thousands of processes which all couldnt find the path src/installers/AMD64 luckily i managed to pkill bmake before my system went down. after changing the line to "amd64" in lowercase, the build seemed to work... for a handful of files, then stopping on

Compiling gen-errors.c

Downloads/tendra/bootstrap/src/tools/tcc/tcc: No such file or directory *** Error code 127

Comments (7)

  1. Anonymous

    (the problem above was a non-existing "bootstrap" path it seems setting a variable BOOTSTRAP=1 in Makefile.defs fixes it additionally, one has to symlink obj to bootstrap

    with that settled, it builds around 30 files, then stopping with

    Downloads/tendra/src/utilities/make_err/main.c:106:10: error: ‘optind’ undeclared (first use in this function)

  2. Anonymous

    adding the line

    extern int optind;

    before main() fixes that... now it stops at Downloads/tendra/bootstrap/src/tools/tcc/tcc -yTENDRA_BASEDIR="Downloads/tendra/bootstrap/src" -YDownloads/tendra/bootstrap/src/lib/env/bootstrap -Y64bit -IDownloads/tendra/src/lib/machines/linux/amd64/include -I/usr/include -fDownloads/tendra/src/lib/machines/linux/amd64/startup/ansi.h -o building/ansi.api/fail.j building/ansi.api/fail.c -Ymakelib -DBUILDING_LIBS tcc: Warning: Can't find environment, '64bit'.

    "/usr/include/bits/pthreadtypes.h", line 99: Error: [ISO]: A member declaration should contain a declarator.

    "/usr/include/bits/pthreadtypes.h", line 99: Error: [ISO]: Every type definition must introduce a member name.

    seems it has problems to digest the glibc headers...

  3. Anonymous

    the code in glibc is the following it seems WORDSIZE != 64 the #else parts troubles

    1. if WORDSIZE == 64 int spins; pthread_list_t list;
    3. else unsigned int nusers; extension union { int spins; pthread_slist_t list; };
    4. endif
  4. Jeroen Ruigrok van der Werven repo owner

    All these errors are to be expected. TenDRA, as it is in the repository right now, is a slight converted import from SVN I did at the request of someone. I am currently in Japan unable to do any decent work on it, but I want to rewrite the majority of the entire build sequence into something a bit more modern. The checker is most likely also outdated with regard current standards and specifications and also causes false negatives.

  5. Anonymous

    thanks for your response. in the mean time:

    tested with musl libc, here it fails to recognize builtin_va_list "/usr/include/bits/alltypes.h", line 18: Error: [ISO 6.5.2]: The type 'builtin_va_list' hasn't been declared.

    (after some hackery, since the build system doesn't know in which paths it put the generated binaries)

  6. Anonymous

    apart from the build issues: it seems tendra is a very decent compiler with lots of good design decisions. also the number of supported installers is decent. the only interesting CPU arch missing is ARM. i'd love to do further tests with it and eventually integrate it into the sabotage linux distribution i'm working on. definitely worth preserving and updating to current standards (ie. C99). thanks for your work.

  7. Log in to comment