• long time no see-- issues compiling sbbs316c on ubuntu 18.04.1

    From Sprite@VERT to All on Thursday, November 15, 2018 16:02:02
    Hi everybody. I used to be around for awhile, but it has certainly been a few years since my adventures in transient life
    took down my system.
    Trying to get things back up again, and I'd love to start on some different JS development, but I'm having some issues
    getting things to compile properly on Ubuntu 18.04.1. I believe I have all of the required dependencies installed, along with all
    of the optional and 3rd party software that's listed on the *NIX install page, as well. So I don't _think_ I'm missing anything.
    Anyhoo, here's what make is telling me (I'm doing the cvs install with the tag sbbs316c):

    jsscope.h: In member function ‘void js::Shape::setParent(js::Shape*)’: jsutil.h:120:43: warning: typedef ‘js_static_assert70’ locally defined but not used [-Wunused-local-typedefs]
    typedef int JS_STATIC_ASSERT_GLUE(js_static_assert, __COUNTER__)[(cond) ? 1 : -1]
    ^
    jsutil.h:117:41: note: in definition of macro ‘JS_STATIC_ASSERT_GLUE1’
    #define JS_STATIC_ASSERT_GLUE1(x,y) x##y
    ^
    jsutil.h:120:21: note: in expansion of macro ‘JS_STATIC_ASSERT_GLUE’
    typedef int JS_STATIC_ASSERT_GLUE(js_static_assert, __COUNTER__)[(cond) ? 1 : -1]
    ^~~~~~~~~~~~~~~~~~~~~
    jsscope.h:431:9: note: in expansion of macro ‘JS_STATIC_ASSERT’
    JS_STATIC_ASSERT(uint32(SHAPE_INVALID_SLOT) == ~uint32(0));
    ^~~~~~~~~~~~~~~~
    In file included from jsapi.cpp:94:0:
    jsobjinlines.h: In member function ‘void JSObject::setArrayLength(uint32)’: jsobjinlines.h:316:24: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    setPrivate((void*) length);
    ^~~~~~
    In file included from ./assembler/assembler/MacroAssembler.h:54:0,
    from yarr/yarr/RegexJIT.h:31,
    from jsregexpinlines.h:49,
    from jsapi.cpp:97: ./assembler/assembler/MacroAssemblerX86_64.h: In member function ‘JSC::AbstractMacroAssembler<JSC::X86Assembler>::Call
    JSC::MacroAssemblerX86_64::call()’: ./assembler/assembler/MacroAssemblerX86_64.h:127:22: warning: variable ‘label’ set but not used [-Wunused-but-set-variable]
    DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
    ^~~~~
    ./assembler/assembler/MacroAssemblerX86_64.h: In member function ‘JSC::AbstractMacroAssembler<JSC::X86Assembler>::Call
    JSC::MacroAssemblerX86_64::tailRecursiveCall()’: ./assembler/assembler/MacroAssemblerX86_64.h:135:22: warning: variable ‘label’ set but not used [-Wunused-but-set-variable]
    DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
    ^~~~~
    ./assembler/assembler/MacroAssemblerX86_64.h: In member function ‘JSC::AbstractMacroAssembler<JSC::X86Assembler>::Call
    JSC::MacroAssemblerX86_64::makeTailRecursiveCall(JSC::AbstractMacroAssembler<JSC::X86Assembler>::Jump)’:
    ./assembler/assembler/MacroAssemblerX86_64.h:144:22: warning: variable ‘label’ set but not used [-Wunused-but-set-variable]
    DataLabelPtr label = moveWithPatch(ImmPtr(0), scratchRegister);
    ^~~~~
    jsapi.cpp: In function ‘JSIdArray* JS_Enumerate(JSContext*, JSObject*)’: jsapi.cpp:3988:16: error: cannot convert ‘bool’ to ‘JSIdArray*’ in return
    return false;
    ^~~~~
    config/rules.mk:1475: recipe for target 'jsapi.o' failed
    make[4]: *** [jsapi.o] Error 1
    make[4]: Leaving directory '/home/sbbs/sbbs/3rdp/src/mozjs/js-1.8.5/js/src' config/rules.mk:753: recipe for target 'default' failed
    make[3]: *** [default] Error 2
    make[3]: Leaving directory '/home/sbbs/sbbs/3rdp/src/mozjs/js-1.8.5/js/src' GNUmakefile:50: recipe for target '../build/../../src/../3rdp/gcc.linux.x64.release/mozjs/lib/libmozjs185-1.0.a' failed
    make[2]: *** [../build/../../src/../3rdp/gcc.linux.x64.release/mozjs/lib/libmozjs185-1.0.a] Error 2
    make[2]: Leaving directory '/home/sbbs/sbbs/3rdp/build' /home/sbbs/sbbs/src/sbbs3/../build/Common.gmake:482: recipe for target 'js' failed
    make[1]: *** [js] Error 2
    make[1]: Leaving directory '/home/sbbs/sbbs/src/sbbs3'
    GNUmakefile:151: recipe for target 'sbbs3' failed
    make: *** [sbbs3] Error 2
    sbbs@d-resources:~/sbbs$

    Sorry about the long cut 'n paste, with all of the notes in there (there are literally pages above the top ones there, all
    having issues about expansion of macros, usually (if not always) JS_something_something. I can paste all of it if it's necessary,
    but I don't think that this is all from the compilation of just the one file. My apologies if I'm mistaken.
    Anybody have a pointer in the right direction for me here? Sorry if I missed anything too obvious, or that's been updated
    in the past few years, I did kind of rush into compilation (though following the install page on the wiki) due to the fact that I'd
    been so familiar with things w/316b.
    Thanks in advance!

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Sprite on Saturday, November 17, 2018 05:30:18
    Re: long time no see-- issues compiling sbbs316c on ubuntu 18.04.1
    By: Sprite to All on Thu Nov 15 2018 04:02 pm

    Hi everybody. I used to be around for awhile, but it has certainly been a few years since my adventures in transient life
    took down my system.
    Trying to get things back up again, and I'd love to start on some different JS development, but I'm having some issues
    getting things to compile properly on Ubuntu 18.04.1. I believe I have all of the required dependencies installed, along with all
    of the optional and 3rd party software that's listed on the *NIX install page, as well. So I don't _think_ I'm missing anything.
    Anyhoo, here's what make is telling me (I'm doing the cvs install with the tag sbbs316c):


    jsutil.h:120:43: warning: typedef ‘js_static_assert70’ locally defined JSObject::setArrayLength(uint32)’: jsobjinlines.h:316:24: warning: cast to ./assembler/assembler/MacroAssemblerX86_64.h:127:22: warning: variable ./assembler/assembler/MacroAssemblerX86_64.h:135:22: warning: variable ./assembler/assembler/MacroAssemblerX86_64.h:144:22: warning: variable

    The JS-related warnings should be ignored.

    return false;
    ^~~~~
    config/rules.mk:1475: recipe for target 'jsapi.o' failed

    Sounds like your version of GCC isn't compatible with the libmozjs 1.8.5 source. See if you have a libmozjs-dev package for your distro/version and install/use that instead (by specifying JSLIB and JSINCLUDE definitions on the make command-line).



    digital man

    Synchronet/BBS Terminology Definition #27:
    FOSSIL = Fido/Opus/SEAdog Standard Interface Layer
    Norco, CA WX: 54.9øF, 54.0% humidity, 0 mph SSW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Sprite@VERT to Sprite on Tuesday, November 20, 2018 06:32:00
    Digital Man wrote to Sprite <=-

    jsutil.h:120:43: warning: typedef ª€˜js_static_assert70ª€™ locally defined JSObject::setArrayLength(uint32)ª€™: jsobjinlines.h:316:24: warning: cast to ./assembler/assembler/MacroAssemblerX86_64.h:127:22: warning: variable ./assembler/assembler/MacroAssemblerX86_64.h:135:22: warning: variable ./assembler/assembler/MacroAssemblerX86_64.h:144:22: warning: variable

    The JS-related warnings should be ignored.

    Gotcha & thank you.


    return false;
    ^~~~~
    config/rules.mk:1475: recipe for target 'jsapi.o' failed

    Sounds like your version of GCC isn't compatible with the libmozjs
    1.8.5 source. See if you have a libmozjs-dev package for your distro/version and install/use that instead (by specifying JSLIB and JSINCLUDE definitions on the make command-line).

    I do believe you're correct. Using Ubuntu 18.04.1 the available mozjs distributions were 38-0 and 52-0 (or, well, -dev instead of -0 for the development files). So I installed the 52-dev package and have gotten further along in the make process.
    I am, however, now running into an issue with processor architecture. The makefile is specifying somewhere -mcpu=pentium, which is causing a failure at

    cc -c -D__UNIX__ -DNDEBUG -I. -DDATA_LITTLEENDIAN -fPIC -DHAS_RECURSIVE_MUTEX -DHAS_ROBUST_MUTEX -mcpu=pentium -O3 -DOSVERSION=4 -fomit-frame-pointer -D_REENTRANT -o ./static-obj/bn_add.o bn/bn_add.c
    cc: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead
    cc1: error: CPU you selected does not support x86-64 instruction set

    So I'm going to see if I can figure out where to specify whatever generic predecessor to the core i3 chip that I've got, or generic x86-64, or whatever, and I'm sure that'll get me through it, or at least much further along in the process here. I've been looking on the wiki, though, and haven't come across the flag to set yet. In case I haven't found it in a few hours here, do you possibly know the flag I'd be needing to pass to make off the top of your
    head?
    Thank you much, DM. As always (though I'm under a new handle and probably not well remembered anyway), it is much appreciated! :)


    --- MultiMail/Linux v0.49
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Sprite on Tuesday, November 20, 2018 08:06:22
    Re: re: long time no see-- is
    By: Sprite to Sprite on Tue Nov 20 2018 06:32 am

    Thank you much, DM. As always (though I'm under a new handle and probably not well remembered anyway), it is much appreciated! :)

    No problem. A couple of things though:

    I'm doing the cvs install with the tag sbbs316c

    1. I recommend building/installing the latest from CVS instead of v3.16c

    2. If you really want v3.16c, you can get pre-built binaries from Vertrauen
    (for Linux-x64, built on Debian 9.1 with the libmozjs185-dev package):
    ftp://vert.synchro.net/Synchronet/sbbs316c.tgz


    digital man

    Synchronet "Real Fact" #64:
    Synchronet PCMS (introduced w/v2.0) is Programmable Command and Menu Structure. Norco, CA WX: 61.6øF, 35.0% humidity, 0 mph SW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Sprite@VERT to Sprite on Wednesday, November 21, 2018 15:51:00
    Digital Man wrote to Sprite <=-

    No problem. A couple of things though:

    I'm doing the cvs install with the tag sbbs316c

    1. I recommend building/installing the latest from CVS instead of
    v3.16c

    Ah, roger that. I thought that 316c was more stable due to the development process.

    2. If you really want v3.16c, you can get pre-built binaries from Vertrauen
    (for Linux-x64, built on Debian 9.1 with the libmozjs185-dev
    package):
    ftp://vert.synchro.net/Synchronet/sbbs316c.tgz

    Nah, I'm not hooked on any one version. I'll just be happy to get
    Synchronet running again so that I can burn a few days putting together some ANSIs again and then a few months trying to build a shell in JS. ;)
    That being said, I have tried the compilation process, and things are still hanging up on some JS issues, this time in the build of ansiterm.o. I've
    tried the process from scratch both with mozjs-52-dev and mozjs-38-dev, and it's dying at the same point each time.
    The ansiterm.o section of the build reports the following:
    -=-=-=-
    make[2]: Leaving directory '/home/sbbs/sbbs/3rdp/build'
    Compiling ansiterm.cpp
    In file included from /usr/include/wchar.h:35:0,
    from /usr/include/mozjs-38/mozilla/TypeTraits.h:20,
    from /usr/include/mozjs-38/mozilla/Assertions.h:312,
    from /usr/include/mozjs-38/mozilla/FloatingPoint.h:12,
    from /usr/include/mozjs-38/jsapi.h:12,
    from sbbs.h:114,
    from ansiterm.cpp:38:
    /usr/include/mozjs-38/jspubtd.h:459:60: warning: offsetof within non-standard-layout type ¨js::PerThreadDataFriendFields::RuntimeDummy¨ is undefined [-Winvalid-offsetof]
    static const size_t RuntimeMainThreadOffset = offsetof(RuntimeDummy, mainThread);
    ^
    In file included from ansiterm.cpp:38:0:
    sbbs.h:1230:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DescribeSyncObject(JSContext* cx, JSObject* obj, const char*, int ver);
    ^~~~~~
    JS_Now
    sbbs.h:1231:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DescribeSyncConstructor(JSContext* cx, JSObject* obj, const char*);
    ^~~~~~
    JS_Now
    sbbs.h:1232:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineSyncMethods(JSContext* cx, JSObject* obj, jsSyncMethodSpec*);
    ^~~~~~
    JS_Now
    sbbs.h:1233:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineSyncProperties(JSContext* cx, JSObject* obj, jsSyncPropertySpec*);
    ^~~~~~
    JS_Now
    sbbs.h:1234:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_SyncResolve(JSContext* cx, JSObject* obj, char *name, jsSyncPropertySpec* props, jsSyncMethodSpec* funcs, jsConstIntSpec* consts, int flags);
    ^~~~~~
    JS_Now
    sbbs.h:1235:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineConstIntegers(JSContext* cx, JSObject*
    obj, jsConstIntSpec*, int flags);
    ^~~~~~
    JS_Now
    sbbs.h:1236:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CreateArrayOfStrings(JSContext* cx, JSObject* parent
    ^~~~~~
    JS_Now
    sbbs.h:1276:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CommonOperationCallback(JSContext*, js_callback_t*);
    ^~~~~~
    JS_Now
    sbbs.h:1296:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CreateUserObjects(JSContext* cx, JSObject* parent, scfg_t* cfg
    ^~~~~~
    JS_Now
    /home/sbbs/sbbs/src/sbbs3/../build/Common.gmake:451: recipe for target 'gcc.linux.x64.obj.release-mt/ansiterm.o' failed
    -=-=-=-

    Any suggestions for getting beyond this point?

    TIA!


    --- MultiMail/Linux v0.49
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Sprite on Wednesday, November 21, 2018 22:53:07
    Re: Re: long time no see-- is
    By: Sprite to Sprite on Wed Nov 21 2018 03:51 pm

    Digital Man wrote to Sprite <=-

    No problem. A couple of things though:

    I'm doing the cvs install with the tag sbbs316c

    1. I recommend building/installing the latest from CVS instead of v3.16c

    Ah, roger that. I thought that 316c was more stable due to the development process.

    2. If you really want v3.16c, you can get pre-built binaries from Vertrauen
    (for Linux-x64, built on Debian 9.1 with the libmozjs185-dev package):
    ftp://vert.synchro.net/Synchronet/sbbs316c.tgz

    Nah, I'm not hooked on any one version. I'll just be happy to get Synchronet running again so that I can burn a few days putting together some ANSIs again and then a few months trying to build a shell in JS. ;)
    That being said, I have tried the compilation process, and things are still hanging up on some JS issues, this time in the build of ansiterm.o. I've
    tried the process from scratch both with mozjs-52-dev and mozjs-38-dev, and it's dying at the same point each time.
    The ansiterm.o section of the build reports the following:
    -=-=-=-
    make[2]: Leaving directory '/home/sbbs/sbbs/3rdp/build'
    Compiling ansiterm.cpp
    In file included from /usr/include/wchar.h:35:0,
    from /usr/include/mozjs-38/mozilla/TypeTraits.h:20,
    from /usr/include/mozjs-38/mozilla/Assertions.h:312,
    from /usr/include/mozjs-38/mozilla/FloatingPoint.h:12,
    from /usr/include/mozjs-38/jsapi.h:12,
    from sbbs.h:114,
    from ansiterm.cpp:38: /usr/include/mozjs-38/jspubtd.h:459:60: warning: offsetof within non-standard-layout type ¨js::PerThreadDataFriendFields::RuntimeDummy¨ is undefined [-Winvalid-offsetof]
    static const size_t RuntimeMainThreadOffset = offsetof(RuntimeDummy, mainThread);
    ^
    In file included from ansiterm.cpp:38:0:
    sbbs.h:1230:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DescribeSyncObject(JSContext* cx, JSObject* obj, const char*, int ver);
    ^~~~~~
    JS_Now
    sbbs.h:1231:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DescribeSyncConstructor(JSContext* cx, JSObject* obj, const char*);
    ^~~~~~
    JS_Now
    sbbs.h:1232:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineSyncMethods(JSContext* cx, JSObject* obj, jsSyncMethodSpec*);
    ^~~~~~
    JS_Now
    sbbs.h:1233:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineSyncProperties(JSContext* cx, JSObject* obj, jsSyncPropertySpec*);
    ^~~~~~
    JS_Now
    sbbs.h:1234:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_SyncResolve(JSContext* cx, JSObject* obj, char *name, jsSyncPropertySpec* props, jsSyncMethodSpec* funcs, jsConstIntSpec* consts, int flags);
    ^~~~~~
    JS_Now
    sbbs.h:1235:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_DefineConstIntegers(JSContext* cx, JSObject* obj, jsConstIntSpec*, int flags);
    ^~~~~~
    JS_Now
    sbbs.h:1236:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CreateArrayOfStrings(JSContext* cx, JSObject* parent
    ^~~~~~
    JS_Now
    sbbs.h:1276:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CommonOperationCallback(JSContext*, js_callback_t*);
    ^~~~~~
    JS_Now
    sbbs.h:1296:12: error: ¨JSBool¨ does not name a type; did you mean ¨JS_Now¨?
    DLLEXPORT JSBool DLLCALL js_CreateUserObjects(JSContext* cx, JSObject* parent, scfg_t* cfg
    ^~~~~~
    JS_Now
    /home/sbbs/sbbs/src/sbbs3/../build/Common.gmake:451: recipe for target 'gcc.linux.x64.obj.release-mt/ansiterm.o' failed
    -=-=-=-

    Any suggestions for getting beyond this point?

    Synchronet comes with its own supported version of libmozjs-185 (in 3rdp). Use that (don't pass JSLIB or JSINCLUDE on the make command-line).

    digital man

    Synchronet/BBS Terminology Definition #70:
    XOFF = Transmit Off (ASCII 19, Ctrl-S)
    Norco, CA WX: 59.1øF, 73.0% humidity, 0 mph WNW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Sprite on Wednesday, November 21, 2018 22:57:07
    Re: Re: long time no see-- is
    By: Digital Man to Sprite on Wed Nov 21 2018 10:53 pm

    Any suggestions for getting beyond this point?

    Synchronet comes with its own supported version of libmozjs-185 (in 3rdp). Use that (don't pass JSLIB or JSINCLUDE on the make command-line).

    Also, there are nightly prebuild binaries for Linux-x64 in ftp://vert.synchro.net/Synchronet/sbbs_dev.tgz

    digital man

    This Is Spinal Tap quote #42:
    What day the Lord created Spinal Tap and couldn't he have rested on that day? Norco, CA WX: 59.3øF, 68.0% humidity, 0 mph WSW wind, 0.00 inches rain/24hrs

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Sprite@VERT to Sprite on Sunday, December 09, 2018 20:26:00
    Digital Man wrote to Sprite <=-

    Re: Re: long time no see-- is
    By: Sprite to Sprite on Wed Nov 21 2018 03:51 pm

    Synchronet comes with its own supported version of libmozjs-185 (in
    3rdp). Use that (don't pass JSLIB or JSINCLUDE on the make
    command-line).

    Gotcha. That did it, on to configuration. Thank you muchly!


    --- MultiMail/Linux v0.49
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net