I am trying to build the unix sources for this project, exactly following the `HowToBuildFromSources` manual (the easy way). But unfortunately, when running `make` I get an error that `bld/plugins.int` is missing:
``` $ make [ -d bld ] || mkdir bld [ -f bld/Makefile ] || ( cd bld; ../config/configure; ) checking for gcc... gcc # ... (75 lines skipped) checking whether to build static libraries... no /workspace/opensmalltalk-vm/src /workspace/opensmalltalk-vm/src/plugins checking sanity of generated src directory... bad missing file: /workspace/opensmalltalk-vm/platforms/unix/bld/plugins.int make: *** [Makefile:5: all] Error 1 ```
See yourself: [%5D(https://gitpod.io/#snapshot/...)
Is it me or is the documentation of the build process not up to date? Looking forward to your help!
The instructions in HowToBuildFromSources are for the old squeakvm. For Cog, use the mvm script under the various build directories based on platform/wordsize/ISA and then product/interpreter/object-memory. Here you will find the plugins.int and plugins.ext files. Now choose the build directory for your build variant (production, assert, debug etc.).
Example,
$ cd build.linux64x64/squeak.cog.spur/build $ ./mvm
Thank you very much for your help, Subbu. So now I ran exactly your two commands, but first, the build failed because it was missing `clang`. Do I assume correctly that the following dependency should be mentioned anywhere in the repository?
```sh sudo apt-get -y install clang ```
However, after installing clang and trying again, the build still fails.
The output contains the following errors:
- ``` error: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Werror,-Wunknown-warning-option] ``` - ``` /mnt/c/Users/Christoph/OneDrive/Dokumente/Squeak/Christoph/git/opensmalltalk-vm/platforms/Cross/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.h:14:13: fatal error: /mnt/c/Users/Christoph/OneDrive/Dokumente/Squeak/Christoph/git/opensmalltalk-vm/platforms/Cross/plugins/B3DAcceleratorPlugin/B3DAcceleratorPlugin.h:14:13: fatal error: 'GL/gl.h' file not found # include <GL/gl.h> ^~~~~~~~~ 1 error generated. Makefile:179: recipe for target 'B3DAcceleratorPlugin.lo' failed make[1]: *** [B3DAcceleratorPlugin.lo] Error 1 Makefile:543: recipe for target 'B3DAcceleratorPlugin.la' failed make: *** [B3DAcceleratorPlugin.la] Error 2 ``` - Additionally, I am getting a large number of 177 warnings, which are probably not so important?
Could you tell me where I can get the `gl.h` header?
On 12/06/20 8:35 pm, Christoph Thiede wrote:
Thank you very much for your help, Subbu. So now I ran exactly your two commands, but first, the build failed because it was missing |clang|. Do I assume correctly that the following dependency should be mentioned anywhere in the repository?
sudo apt-get -y install clang
I haven't used clang. I use the gcc toolchain. Sorry
|error: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Werror,-Wunknown-warning-option] |
gcc has the unused-but-set-variable warning that gets suppressed with that flag. See https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
If you use clang, you will have to find the equivalent.
fatal error: 'GL/gl.h' file not found # include <GL/gl.h> ^~~~~~~~~
This is found in mesa-common-dev package which gets install automatically as a dependency for libgl1-mesa-dev.
- Additionally, I am getting a large number of 177 warnings, which are probably not so important?
If I were you, I would scan through the warnings on 64b compile just to make sure I am not missing anything important. Both int and pointer were 32b on 32b compile so one could force a pointer into int. But a pointer is 64b on 64bit compiles. Storing a pointer into a int is problematic.
Regards .. Subbu
Am Fr., 12. Juni 2020 um 18:24 Uhr schrieb kksubbu <notifications@github.com
:
On 12/06/20 8:35 pm, Christoph Thiede wrote:
fatal error: 'GL/gl.h' file not found # include <GL/gl.h> ^~~~~~~~~
This is found in mesa-common-dev package which gets install automatically as a dependency for libgl1-mesa-dev.
Does the configure script not check for the presence of the OpenGL headers?
Hi Subbu, thank you again! After installing `libgl1-mesa-dev`, the build process ran successfully, however it was still missing that clang flag.
My questions are resolved so far, but I believe that further people could benefit from the exact documentation of the necessary dependencies:
first, the build failed because it was missing `clang`. Do I assume correctly that the following dependency should be mentioned anywhere in the repository?
sudo apt-get -y install clang
I haven't used clang. I use the gcc toolchain. Sorry
Which exact packages do I have to install? The `platforms/unix/config/configure` script requires `clang` to be installed as noted above. At the moment I have installed `gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0` and `clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)`, but that clang version does not understand the `no-unused-but-set-variable` flag. Could you maybe refer to a specific package? :-)
I just read the `HowToBuild` file in the `build.linux*` directory. I installed the package string listed for Ubuntu, but the clang flag is still not recognized ...
On 12/06/20 11:21 pm, Christoph Thiede wrote:
Which exact packages do I have to install?
I just installed the packages listed in the apt-get line in the HowToBuild document.
|platforms/unix/config/configure| script requires |clang| to be installed as noted above. At the moment I have installed |gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0| and |clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)|, but that clang version does not understand the |no-unused-but-set-variable| flag. Could you maybe refer to a specific package? :-)
I did not run the configure script (too lazy ;-). I used the script in $ cd build.linux64x64/squeak.cog.spur/build && ./mvm
I haven't faced this problem with the W flag. gcc's description of the warning suppression flags are in:
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
If this flag is not there in clang, perhaps you could try compiling without using it in CFLAGS.
HTH .. Subbu
Does the configure script not check for the presence of the OpenGL headers?
Am I just talking to an intelligent bot? :-) No, at least I did not found an error referring to this particular problem.
That was me, replying to the mailing list. ;-)
Ah, the bot should mention this :-)
Can we close this issue now?
@eliotmiranda My concrete problem was resolved, but it might be helpful for others to add some exact documentation of the dependencies needed for the build without using cygwin. Feel free to close if you think this is not important. :-)
Closed #507.
vm-dev@lists.squeakfoundation.org