How can I compile JNA's native bits on windows for 32- and 64-bit targets? - jna

I want to compile JNA library on 32-bit Cygwin or on 32-bit Debian Linux using -Dskip-native=false parameter. I installed the required packages, but it can't be compiled. It can be compiled on 64-bit Cygwin or 64-bit Debian Linux without any problem (for 64-bit target), but can't be compiled on 32-bit platforms. I also tried to compile the sources on jna-4.2.1/dist/src-full folder, but it couldn't be compiled.
I use the following parameters for 32-bit target.
export ANT_OPTS="-d32 -Dos.prefix=win32-x86 -Dskip-native=false"
I got the following error messages on 64-bit Cygwin (using the same parameters).
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S: Assembler messages:
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:286: Error: bad register name `%r11'
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:288: Error: bad register name `%rcx'
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:291: Error: bad register name `%rsp)'
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:294: Error: bad register name `%r11'
...
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:516: Error: bad register name `%rbp'
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:517: Error: unsupported instruction `ret'
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:518: Warning: zero assumed for missing expression
[exec] /cygdrive/d/Projects/jna-4.2.1/dist/src-full/native/libffi/src/x86/win64.S:518: Warning: zero assumed for missing expression
[exec] Makefile:1345: recipe for target 'src/x86/win64.lo' failed
[exec] make[3]: Leaving directory '/cygdrive/d/Projects/jna-4.2.1/dist/src-full/build/native-win32-x86/libffi'
[exec] Makefile:1603: recipe for target 'all-recursive' failed
[exec] make[2]: Leaving directory '/cygdrive/d/Projects/jna-4.2.1/dist/src-full/build/native-win32-x86/libffi'
[exec] Makefile:741: recipe for target 'all' failed
[exec] make[1]: Leaving directory '/cygdrive/d/Projects/jna-4.2.1/dist/src-full/build/native-win32-x86/libffi'
[exec] Makefile:449: recipe for target '../build/native-win32-x86/libffi/.libs/libffi.a' failed
[exec] make[3]: *** [src/x86/win64.lo] Error 1
[exec] make[2]: *** [all-recursive] Error 1
[exec] make[1]: *** [all] Error 2
[exec] make: *** [../build/native-win32-x86/libffi/.libs/libffi.a] Error 2
BUILD FAILED
D:\Projects\jna-4.2.1\dist\src-full\build.xml:813: exec returned: 2
I get the following errors on 32-bit Cygwin.
[echo] os.prefix=win32-x86
[echo] os.name=Windows 7
[echo] os.arch=x86 (little)
[echo] build=build
[echo] build.native=D:\Projects\jna-4.2.1\dist\src-full\build\native-win32-x86
-setup:
compile:
[javac] Compiling 59 source files to D:\Projects\jna-4.2.1\dist\src-full\build\classes
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 warning
javah:
-native-api-check:
:rsrc:
rsrc:
[copy] Copying 1 file to D:\Projects\jna-4.2.1\dist\src-full\build\native-win32-x86
native:
[exec] Generating configure
[exec] autoreconf-2.69: Entering directory `.'
[exec] autoreconf-2.69: configure.ac: not using Gettext
[exec] autoreconf-2.69: running: aclocal --force -I m4
[exec] autoreconf-2.69: configure.ac: tracing
[exec] autoreconf-2.69: running: libtoolize --copy --force
[exec] libtoolize: putting auxiliary files in '.'.
[exec] libtoolize: copying file './ltmain.sh'
[exec] libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
[exec] libtoolize: copying file 'm4/libtool.m4'
[exec] libtoolize: copying file 'm4/ltoptions.m4'
[exec] libtoolize: copying file 'm4/ltsugar.m4'
[exec] libtoolize: copying file 'm4/ltversion.m4'
[exec] libtoolize: copying file 'm4/lt~obsolete.m4'
[exec] autoreconf-2.69: running: /usr/bin/autoconf-2.69 --force
[exec] autoreconf-2.69: running: /usr/bin/autoheader-2.69 --force
[exec] autoreconf-2.69: running: automake --add-missing --copy --force-missing
[exec] Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /usr/bin/automake-1.15 line 3936.
[exec] configure.ac:31: installing './compile'
[exec] configure.ac:19: installing './missing'
[exec] Makefile.am: installing './depcomp'
[exec] Configuring libffi (x86)
[exec] autoreconf-2.69: Leaving directory `.'
[exec] checking build system type... i686-pc-cygwin
[exec] checking host system type... i686-pc-cygwin
[exec] checking target system type... i686-pc-cygwin
[exec] checking for gsed... sed
[exec] checking for a BSD-compatible install... /usr/bin/install -c
[exec] checking whether build environment is sane... yes
[exec] checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
[exec] checking for gawk... gawk
[exec] checking whether make sets $(MAKE)... yes
[exec] checking whether make supports nested variables... yes
[exec] checking for gcc... i686-pc-mingw32-gcc
[exec] checking whether the C compiler works... no
[exec] configure: error: in `/cygdrive/d/Projects/jna-4.2.1/dist/src-full/build/native-win32-x86/libffi':
[exec] configure: error: C compiler cannot create executables
[exec] See `config.log' for more details
[exec] Makefile:449: recipe for target '../build/native-win32-x86/libffi/.libs/libffi.a' failed
[exec] make: *** [../build/native-win32-x86/libffi/.libs/libffi.a] Error 77
BUILD FAILED
D:\Projects\jna-4.2.1\dist\src-full\build.xml:813: exec returned: 2
Total time: 50 seconds
I couldn't understand why it says "[exec] checking whether the C compiler works... no" although I installed all development packages and lib packages on 32-bit Cygwin and although gcc works.
How can I compile jna's native libraries for 32-bit platforms?

According to config.log, configure is failing here:
/cygdrive/d/Projects/jna-4.2.1/native/libffi/configure: line 3927: i686-pc-mingw32-gcc: command not found
Make sure that your cross compiler is on your path or add CC=/path/to/your-cross-compiler to FFI_CONFIG.

Related

Drake source installation unsuccessful due to missing files

I'm following the instructions from here and here to install drake and I used this file to install all the dependencies. Now when I run cmake ../drake and then make -j, I see I very very long traceback that stackoverflow won't let me post here because I can't seem to get it into a format it likes. But this is where the first error starts:
ERROR: /home/prasanth/.cache/bazel/_bazel_prasanth/7a6ad5daa22f12899ee3dcd32eb0729d/external/gz_math_internal/BUILD.bazel:172:20: Compiling external/gz_math_internal/drake_src/src/Angle.cc failed: (Exit 1): cc failed: error executing command /usr/bin/cc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 25 arguments skipped)
Alternatively, when I use bazel build //... as mentioned here, I see:
WARNING: The following rc files are no longer being read, please transfer their contents or import their path into one of the standard rc files: /home/prasanth/ros2/robotic_tray_processor/drake/tools/bazel.rc INFO: Build option --compilation_mode has changed, discarding analysis cache. INFO: Analyzed 9795 targets (143 packages loaded, 29016 targets configured). INFO: Found 9795 targets... ERROR: /home/prasanth/ros2/robotic_tray_processor/drake/examples/kuka_iiwa_arm/models/BUILD.bazel:8:13: Middleman _middlemen/examples_Skuka_Uiiwa_Uarm_Smodels_Sinstall_Udata-runfiles failed: missing input file '//tools/install:installer.py' ERROR: /home/prasanth/ros2/robotic_tray_processor/drake/examples/kuka_iiwa_arm/models/BUILD.bazel:8:13: Middleman _middlemen/examples_Skuka_Uiiwa_Uarm_Smodels_Sinstall_Udata-runfiles failed: 1 input file(s) do not exist ERROR: /home/prasanth/ros2/robotic_tray_processor/drake/examples/kuka_iiwa_arm/models/BUILD.bazel:8:13 Middleman _middlemen/examples_Skuka_Uiiwa_Uarm_Smodels_Sinstall_Udata-runfiles failed: 1 input file(s) do not exist INFO: Elapsed time: 7.483s, Critical Path: 0.01s INFO: 9 processes: 9 internal. FAILED: Build did NOT complete successfully
Please help! Thanks in advance.

Oracle JDK/Windows, JPackage Error: Invalid or unsupported type: [exe]

I am trying to create a native installer for a java application. I have successfully used jpackage on OpenJDK/Linux, but now I am in Oracle JDK on Windows.
What I cannot believe is the error message: Why does jpackage claim that 'exe' is an unsupported type if the help page just list it as one of the allowed values? How come entering anything but 'app-image' leads to failure?
I am using the maven-antrun-plugin to execute this ant snippet:
<target>
<exec executable="jpackage" failonerror="true">
<arg line="--version"/>
</exec>
<exec executable="jpackage" failonerror="true">
<arg line="--help"/>
</exec>
<exec executable="jpackage" failonerror="true">
<arg line="--input target/dist"/>
<arg line="--main-jar ${project.artifactId}-${project.version}.jar"/>
<arg line="--main-class ${mainclass}"/>
<arg line="--dest target"/>
<arg line="--name ${project.artifactId}"/>
<arg line="--app-version ${project.version}"/>
<arg line="--type exe"/>
<arg line="--verbose"/>
</exec>
</target>
The build fails with this output (separated for the three tasks).
[exec] 16.0.1
[exec] Usage: jpackage <options>
[exec]
[exec] Sample usages:
[exec] --------------
[exec] Generate an application package suitable for the host system:
[exec] For a modular application:
[exec] jpackage -n name -p modulePath -m moduleName/className
[exec] For a non-modular application:
[exec] jpackage -i inputDir -n name \
[exec] --main-class className --main-jar myJar.jar
[exec] From a pre-built application image:
[exec] jpackage -n name --app-image appImageDir
[exec] Generate an application image:
[exec] For a modular application:
[exec] jpackage --type app-image -n name -p modulePath \
[exec] -m moduleName/className
[exec] For a non-modular application:
[exec] jpackage --type app-image -i inputDir -n name \
[exec] --main-class className --main-jar myJar.jar
[exec] To provide your own options to jlink, run jlink separately:
[exec] jlink --output appRuntimeImage -p modulePath -m moduleName \
[exec] --no-header-files [<additional jlink options>...]
[exec] jpackage --type app-image -n name \
[exec] -m moduleName/className --runtime-image appRuntimeImage
[exec] Generate a Java runtime package:
[exec] jpackage -n name --runtime-image <runtime-image>
[exec]
[exec] Generic Options:
[exec] #<filename>
[exec] Read options and/or mode from a file
[exec] This option can be used multiple times.
[exec] --type -t <type>
[exec] The type of package to create
[exec] Valid values are: {"app-image", "exe", "msi"}
[exec] If this option is not specified a platform dependent
[exec] default type will be created.
[exec] --app-version <version>
[exec] Version of the application and/or package
[exec] --copyright <copyright string>
[exec] Copyright for the application
[exec] --description <description string>
[exec] Description of the application
[exec] --help -h
[exec] Print the usage text with a list and description of each valid
[exec] option for the current platform to the output stream, and exit
[exec] --name -n <name>
[exec] Name of the application and/or package
[exec] --dest -d <destination path>
[exec] Path where generated output file is placed
[exec] Defaults to the current working directory.
[exec] (absolute path or relative to the current directory)
[exec] --temp <file path>
[exec] Path of a new or empty directory used to create temporary files
[exec] (absolute path or relative to the current directory)
[exec] If specified, the temp dir will not be removed upon the task
[exec] completion and must be removed manually
[exec] If not specified, a temporary directory will be created and
[exec] removed upon the task completion.
[exec] --vendor <vendor string>
[exec] Vendor of the application
[exec] --verbose
[exec] Enables verbose output
[exec] --version
[exec] Print the product version to the output stream and exit
[exec]
[exec] Options for creating the runtime image:
[exec] --add-modules <module name>[,<module name>...]
[exec] A comma (",") separated list of modules to add.
[exec] This module list, along with the main module (if specified)
[exec] will be passed to jlink as the --add-module argument.
[exec] if not specified, either just the main module (if --module is
[exec] specified), or the default set of modules (if --main-jar is
[exec] specified) are used.
[exec] This option can be used multiple times.
[exec] --module-path -p <module path>...
[exec] A ; separated list of paths
[exec] Each path is either a directory of modules or the path to a
[exec] modular jar.
[exec] (each path is absolute or relative to the current directory)
[exec] This option can be used multiple times.
[exec] --jlink-options <jlink options>
[exec] A space separated list of options to pass to jlink
[exec] If not specified, defaults to "--strip-native-commands
[exec] --strip-debug --no-man-pages --no-header-files"
[exec] This option can be used multiple times.
[exec] --runtime-image <file path>
[exec] Path of the predefined runtime image that will be copied into
[exec] the application image
[exec] (absolute path or relative to the current directory)
[exec] If --runtime-image is not specified, jpackage will run jlink to
[exec] create the runtime image using options:
[exec] --strip-debug, --no-header-files, --no-man-pages, and
[exec] --strip-native-commands.
[exec]
[exec] Options for creating the application image:
[exec] --icon <icon file path>
[exec] Path of the icon of the application package
[exec] (absolute path or relative to the current directory)
[exec] --input -i <input path>
[exec] Path of the input directory that contains the files to be packaged
[exec] (absolute path or relative to the current directory)
[exec] All files in the input directory will be packaged into the
[exec] application image.
[exec]
[exec] Options for creating the application launcher(s):
[exec] --add-launcher <launcher name>=<file path>
[exec] Name of launcher, and a path to a Properties file that contains
[exec] a list of key, value pairs
[exec] (absolute path or relative to the current directory)
[exec] The keys "module", "main-jar", "main-class",
[exec] "arguments", "java-options", "app-version", "icon", and
[exec] "win-console" can be used.
[exec] These options are added to, or used to overwrite, the original
[exec] command line options to build an additional alternative launcher.
[exec] The main application launcher will be built from the command line
[exec] options. Additional alternative launchers can be built using
[exec] this option, and this option can be used multiple times to
[exec] build multiple additional launchers.
[exec] --arguments <main class arguments>
[exec] Command line arguments to pass to the main class if no command
[exec] line arguments are given to the launcher
[exec] This option can be used multiple times.
[exec] --java-options <java options>
[exec] Options to pass to the Java runtime
[exec] This option can be used multiple times.
[exec] --main-class <class name>
[exec] Qualified name of the application main class to execute
[exec] This option can only be used if --main-jar is specified.
[exec] --main-jar <main jar file>
[exec] The main JAR of the application; containing the main class
[exec] (specified as a path relative to the input path)
[exec] Either --module or --main-jar option can be specified but not
[exec] both.
[exec] --module -m <module name>[/<main class>]
[exec] The main module (and optionally main class) of the application
[exec] This module must be located on the module path.
[exec] When this option is specified, the main module will be linked
[exec] in the Java runtime image. Either --module or --main-jar
[exec] option can be specified but not both.
[exec]
[exec] Platform dependent option for creating the application launcher:
[exec] --win-console
[exec] Creates a console launcher for the application, should be
[exec] specified for application which requires console interactions
[exec]
[exec] Options for creating the application package:
[exec] --app-image <file path>
[exec] Location of the predefined application image that is used
[exec] to build an installable package
[exec] (absolute path or relative to the current directory)
[exec] --file-associations <file path>
[exec] Path to a Properties file that contains list of key, value pairs
[exec] (absolute path or relative to the current directory)
[exec] The keys "extension", "mime-type", "icon", and "description"
[exec] can be used to describe the association.
[exec] This option can be used multiple times.
[exec] --install-dir <file path>
[exec] Relative sub-path under the default installation location
[exec] --license-file <file path>
[exec] Path to the license file
[exec] (absolute path or relative to the current directory)
[exec] --resource-dir <path>
[exec] Path to override jpackage resources
[exec] Icons, template files, and other resources of jpackage can be
[exec] over-ridden by adding replacement resources to this directory.
[exec] (absolute path or relative to the current directory)
[exec] --runtime-image <file-path>
[exec] Path of the predefined runtime image to install
[exec] (absolute path or relative to the current directory)
[exec] Option is required when creating a runtime package.
[exec]
[exec] Platform dependent options for creating the application package:
[exec] --win-dir-chooser
[exec] Adds a dialog to enable the user to choose a directory in which
[exec] the product is installed
[exec] --win-menu
[exec] Adds the application to the system menu
[exec] --win-menu-group <menu group name>
[exec] Start Menu group this application is placed in
[exec] --win-per-user-install
[exec] Request to perform an install on a per-user basis
[exec] --win-shortcut
[exec] Creates a desktop shortcut for the application
[exec] --win-upgrade-uuid <id string>
[exec] UUID associated with upgrades for this package
[exec] [22:46:46.538] Can not find WiX tools (light.exe, candle.exe)
[exec] [22:46:46.529] Running candle.exe
[exec] [22:46:46.538] Download WiX 3.0 or later from https://wixtoolset.org and add it to the PATH.
[exec] [22:46:46.539] jdk.jpackage.internal.PackagerException: Error: Invalid or unsupported type: [exe]
[exec] at jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments.java:658)
[exec] at jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arguments.java:538)
[exec] at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:98)
[exec] at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:52)
So why am I getting that error? And how can I fix it?
So as it seems the solution to the misleading error message
Error: Invalid or unsupported type: [exe]
had been on the screen all the time:
[exec] [22:46:46.538] Can not find WiX tools (light.exe, candle.exe)
[exec] [22:46:46.529] Running candle.exe
[exec] [22:46:46.538] Download WiX 3.0 or later from https://wixtoolset.org and
add it to the PATH.
After doing exactly that jpackage is behaving a lot better now.

Compile Erlang OTP on Windows 10

I have to build Erlang OTP on Windows as I am not able to use the prebuilt binaries. Does anyone have any help?
This is currently running in a Windows 10 virtual machine with Visual Studio 2013 update 5, Windows SDK 8.1 and Cygwin 3.0.7.
Running otp_build configure in cygwin:
$ ./otp_build configure
Copying static configure cache /cygdrive/c/src/otp/erts/autoconf/win64.config.cache.static to /cygdrive/c/src/otp/erts/autoconf/win64.config.cache
/cygdrive/c/src/otp/configure --build=x86_64-unknown-cygwin build_alias=win32 --host=win32 --target=win32 --disable-dynamic-ssl-lib --cache-file=/cygdrive/c/src/otp/erts/autoconf/win64.config.cache CC=cc\.sh CXX=cc\.sh RANLIB=true AR=ar\.sh
configure: loading cache /cygdrive/c/src/otp/erts/autoconf/win64.config.cache
checking for win32-gcc... (cached) cc.sh
checking whether the C compiler works... no
configure: error: in `/cygdrive/c/src/otp':
configure: error: C compiler cannot create executables
See `config.log' for more details
I getting this output in the config.log
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1948: loading cache /cygdrive/c/src/otp/erts/autoconf/win64.config.cache
configure:2272: checking for win32-gcc
configure:2299: result: cc.sh
configure:2568: checking for C compiler version
configure:2577: cc.sh --version >&5
LINK : warning LNK4044: unrecognized option '/-version'; ignored^M
LINK : fatal error LNK1181: cannot open input file 'msvcrt.lib'^M
configure:2588: $? = 157
configure:2577: cc.sh -v >&5
LINK : warning LNK4044: unrecognized option '/v'; ignored^M
LINK : fatal error LNK1181: cannot open input file 'msvcrt.lib'^M
configure:2588: $? = 157
configure:2577: cc.sh -V >&5
LINK : warning LNK4044: unrecognized option '/V'; ignored^M
LINK : fatal error LNK1181: cannot open input file 'msvcrt.lib'^M
configure:2588: $? = 157
configure:2577: cc.sh -qversion >&5
LINK : warning LNK4044: unrecognized option '/qversion'; ignored^M
LINK : fatal error LNK1181: cannot open input file 'msvcrt.lib'^M
configure:2588: $? = 157
configure:2608: checking whether the C compiler works
configure:2630: cc.sh conftest.c >&5
LINK : fatal error LNK1181: cannot open input file 'msvcrt.lib'^M
configure:2634: $? = 157
configure:2672: result: no
configure: failed program was:
| /* confdefs.h */
My LIB and LIBPATH
$ echo $LIB
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/amd64/:/home/sanfordjd/ProgramFile32/WindowsKits/8.1/Lib/winv6.3/um/x64:/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib:/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/amd64:/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/store/:/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/store/amd64
$ echo $LIBPATH
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/amd64/
$ locate msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/amd64/msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/arm/msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/store/amd64/msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/store/arm/msvcrt.lib
/cygdrive/c/MicrosoftVisualStudio12.0/VC/lib/store/msvcrt.lib
/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 11.0/VC/lib/amd64/msvcrt.lib
/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 11.0/VC/lib/arm/msvcrt.lib
/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 11.0/VC/lib/msvcrt.lib

Building Gktmm 3.91 from source using gcc 7

OS : Ubuntu 16.04 LTS
Compiler : Gcc7.2
I want to add Gtkmm3.9 as a third party dependency for one of my project and I try to compile from the source. I'm not familiar with autoconf or automake toolset.
Going through the documentation https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en I've found that you can autogen.sh to generate configure file. But the project is not able to configure and hence cannot generate any make files too.
Gtkmm/gtkmm-3.91.2$ sh autogen.sh
autogen.sh: 5: autogen.sh: mm-common-prepare: not found
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force --warnings=all -I build
${ACLOCAL_FLAGS}
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build'.
libtoolize: copying file 'build/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build'.
libtoolize: copying file 'build/libtool.m4'
libtoolize: copying file 'build/ltoptions.m4'
libtoolize: copying file 'build/ltsugar.m4'
libtoolize: copying file 'build/ltversion.m4'
libtoolize: copying file 'build/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force --warnings=all
autoreconf: running: /usr/bin/autoheader --force --warnings=all
autoreconf: running: automake --add-missing --copy --force-missing --
warnings=all
configure.ac:51: installing 'build/compile'
configure.ac:51: installing 'build/config.guess'
configure.ac:51: installing 'build/config.sub'
configure.ac:28: installing 'build/install-sh'
configure.ac:28: installing 'build/missing'
Makefile.am:26: error: ENABLE_DOCUMENTATION does not appear in
AM_CONDITIONAL
automake: error: cannot open < build/dist-changelog.am: No such file or directory
autoreconf: automake failed with exit status: 1
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... yes
./configure: line 3211: syntax error near unexpected token `0.9.10'
./configure: line 3211: `MM_PREREQ(0.9.10)'
I want to use C++17 and it seems modern C++ is supported after Gtkmm 3.81 as a parallel build to already existing Gtk3. I cannot find any ubuntu prebuilt packages for Gtkmm3.81.
Does the Gtkmm3.9 repository contains all the dependencies within its repository.
Can that be used with C++17 (I use gcc7.2 compiler)
I cannot compile any programs with old Gtkmm3 with C++17 as there are some removed functions in the header.
I intend to use the library with C++17. More interested in the building the library ourselves.Any build instructions would be very helpful too.
Thanks Johny

Failure when trying to cross-compile Erlang R13B04 for ARM

I am trying to cross-compile Erlang and running into a weird bug. The commands used are
make clean
./otp_build configure --host=arm-none-linux-gnueabi --build=i686-pc-linux-gnu
--prefix=/opt/erlang erl_xcomp_sysroot=~/sbctools/arm-2007q3 --disable-hipe
--disable-threads --disable-smp --disable-megaco-flex-scanner-lineno
--disable-megaco-reentrant-flex-scanner --disable-dynamic-ssl-lib
--without-termcap --without-javac --without-ssl
./otp_build boot
Their output can be seen at http://gist.github.com/576199 (it's too big to paste here), but the error which ends the process is
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[3]: *** [/home/aromanov/otp_src/bin/arm-none-linux-gnueabi/beam] Error 1
make[3]: Leaving directory `/home/aromanov/otp_src/erts/emulator'
make[2]: *** [opt] Error 2
make[2]: Leaving directory `/home/aromanov/otp_src/erts/emulator'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/home/aromanov/otp_src/erts'
make: *** [emulator] Error 2
Indeed, viewing ~/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a shows it's compiled for Intel 30386. But why? And how can I avoid it?
EDIT: ~/sbctools/arm-2007q3/bin is the first directory in the PATH. Do I perhaps need to add other toolchain directories as well?
make[4]: Entering directory /home/aromanov/otp_src/erts/emulator/zlib'
make -f arm-none-linux-gnueabi/Makefile TYPE=opt
make[5]: Entering directory/home/aromanov/otp_src/erts/emulator/zlib'
make[5]: Nothing to be done for all'.
make[5]: Leaving directory/home/aromanov/otp_src/erts/emulator/zlib'
make[4]: Leaving directory `/home/aromanov/otp_src/erts/emulator/zlib'
Looks like you've built zlib part before... when it was not correctly configured.
Try make clean or make distclean and then recompile.

Resources