OpenJDK 8
Palle Girgensohn
girgen at FreeBSD.org
Wed Sep 23 11:32:50 UTC 2015
> 23 sep 2015 kl. 10:36 skrev moorsu <moorsu at gmail.com>:
>
> Hi,
>
> Thanks for helping me out.
>
> I have to build it on 8.4. That's a constraint. Is this not supported?.
Your joking? [https://www.freebsd.org/security/security.html#sup]. You should really consider reassessing that constraint. 8.4 has been unsupported for years.
>
> I did try to use ports. The make fails with an error. Please see the error below.
>
> I was able to build it on ubuntu with the same code base. I am new to FreeBSD.
First thing, don't use gmake to build the ports. There is something wrong in your setup, make is GMake. This is wrong. How could you end up with this? A bad symlink? Fix it.
/usr/bin/make is BSD make. GMake will not build the port at all, it quite a different beast.
If the port does not work with the normal make, try this:
You should take all the patches from openjdk8/files and apply them or you will be out of luck. And also read the Makefile and find out how it is built, and try to mimic that. There was a bug in the FreeBSD kernel that makes openjdk8 crash the kernel for some versions, and I believe the work around was to not upgrade java, or fix the kernel. It should be documented in the Makefile.
You would be far better off just upgrading the OS and "cd openjdk8; make install". But if you need to stay on 8.4, trying to mimic what the port does when installing is probaly your best bet.
>
> root at Freebsd_84 /usr/ports/java/openjdk8]# make -version
> GNU Make 3.82
> Built for amd64-portbld-freebsd8.4
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> [root at Freebsd_84 /usr/ports/java/openjdk8]# make install
> Makefile:44: *** missing separator. Stop.
>
> [root at Freebsd_84 /usr/ports/java/openjdk8]# gmake -version
> GNU Make 3.82
> Built for amd64-portbld-freebsd8.4
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> [root at Freebsd_84 /usr/ports/java/openjdk8]# gmake install
> Makefile:44: *** missing separator. Stop.
> [root at Freebsd_84 /usr/ports/java/openjdk8]#
>
> Line 44 is
>
> .if !exists(/usr/bin/unzip)
>
> Regards
> Moor.
>
>
>
> On Wed, Sep 23, 2015 at 1:57 PM, Palle Girgensohn <girgen at freebsd.org> wrote:
> Hi,
>
> Do you really need to run on 8.4?
>
> And what is the reason for not using the port?
>
> Best regards,
> Palle
>
> > 23 sep 2015 kl. 10:24 skrev moorsu <moorsu at gmail.com>:
> >
> > Hi,
> >
> > I am trying to build openjdk8 from sources (
> > http://hg.openjdk.java.net/jdk8/jdk8)
> > in FreeBSD 8.4. I ran into few build errors.
> >
> > Could you please help me out?
> >
> > -Regards
> > Moor
> >
> > Here is the error snippet.
> >
> > Reading makefile `lib/ServiceabilityLibraries.gmk' (search path) (no ~
> > expansion)...
> > lib/ServiceabilityLibraries.gmk:37: *** No sources found for
> > BUILD_LIBATTACH when looking inside the dirs
> > /jdk8_sources/jdk/src/solaris/native/sun/tools/attach. Stop.
> > Reaping losing child 0x800c432e0 PID 15246
> > gmake[1]: *** [libs-only] Error 2
> > Removing child 0x800c432e0 PID 15246 from chain.
> > Reaping losing child 0x800c53420 PID 15167
> > gmake: *** [jdk-only] Error 2
> > Removing child 0x800c53420 PID 15167 from chain.
> >
> > [root at Freebsd_84 /jdk8_sources]# bash ./configure
> > --with-boot-jdk=/usr/local/openjdk7/ --with-cups=/usr/local/cups-2.0.4/cups
> > --with-num-cores=8 --with-memory-size=8192
> >
> > Running generated-configure.sh
> > configure: configure script generated at timestamp 1389186094.
> > checking for basename... /usr/bin/basename
> > checking for bash... /usr/bin/bash
> > checking for cat... /bin/cat
> > checking for chmod... /bin/chmod
> > checking for cmp... /usr/bin/cmp
> > checking for comm... /usr/bin/comm
> > checking for cp... /bin/cp
> > checking for cpio... /usr/bin/cpio
> > checking for cut... /usr/bin/cut
> > checking for date... /bin/date
> > checking for gdiff... no
> > checking for diff... /usr/bin/diff
> > checking for dirname... /usr/bin/dirname
> > checking for echo... /bin/echo
> > checking for expr... /bin/expr
> > checking for file... /usr/bin/file
> > checking for find... /usr/bin/find
> > checking for head... /usr/bin/head
> > checking for ln... /bin/ln
> > checking for ls... /bin/ls
> > checking for mkdir... /bin/mkdir
> > checking for mktemp... /usr/bin/mktemp
> > checking for mv... /bin/mv
> > checking for printf... /usr/bin/printf
> > checking for rm... /bin/rm
> > checking for sh... /bin/sh
> > checking for sort... /usr/bin/sort
> > checking for tail... /usr/bin/tail
> > checking for tar... /usr/bin/tar
> > checking for tee... /usr/bin/tee
> > checking for touch... /usr/bin/touch
> > checking for tr... /usr/bin/tr
> > checking for uname... /usr/bin/uname
> > checking for uniq... /usr/bin/uniq
> > checking for wc... /usr/bin/wc
> > checking for which... /usr/bin/which
> > checking for xargs... /usr/bin/xargs
> > checking for gawk... no
> > checking for mawk... no
> > checking for nawk... nawk
> > checking for grep that handles long lines and -e... /usr/bin/grep
> > checking for egrep... /usr/bin/grep -E
> > checking for fgrep... /usr/bin/grep -F
> > checking for a sed that does not truncate output... /usr/bin/sed
> > checking for nawk... /usr/bin/nawk
> > checking for cygpath... no
> > checking for readlink... /usr/bin/readlink
> > checking for df... /bin/df
> > checking for SetFile... no
> > checking build system type... x86_64-unknown-freebsd8.4
> > checking host system type... x86_64-unknown-freebsd8.4
> > checking target system type... x86_64-unknown-freebsd8.4
> > checking openjdk-build os-cpu... bsd-x86_64
> > checking openjdk-target os-cpu... bsd-x86_64
> > checking compilation type... native
> > checking for presence of closed sources... no
> > checking if closed source is suppressed (openjdk-only)... no
> > checking which variant of the JDK to build... normal
> > checking which variants of the JVM to build... server
> > checking which debug level to use... release
> > checking what configuration name to use... bsd-x86_64-normal-server-release
> > checking for apt-get... no
> > checking for yum... no
> > checking for port... no
> > checking for pkgutil... no
> > checking for pkgadd... no
> > checking for gmake... /usr/local/bin/gmake
> > configure: Testing potential make at /usr/local/bin/gmake, found using
> > gmake in PATH
> > configure: Resolving FOUND_MAKE (as /usr/local/bin/gmake) failed, using
> > /usr/local/bin/gmake directly.
> > configure: Using GNU make 3.81 (or later) at /usr/local/bin/gmake (version:
> > GNU Make 3.82)
> > checking if find supports -delete... yes
> > checking for unzip... /usr/bin/unzip
> > checking for zip... /usr/local/bin/zip
> > checking for ldd... /usr/bin/ldd
> > checking for otool... no
> > checking for readelf... /usr/bin/readelf
> > checking for hg... /usr/local/bin/hg
> > checking for stat... /usr/bin/stat
> > checking for time... /usr/bin/time
> > checking for pkg-config... /usr/local/bin/pkg-config
> > checking pkg-config is at least version 0.9.0... yes
> > checking for 7z... no
> > checking for unzip... unzip
> > checking for wget... wget
> > checking headful support... include support for both headful and headless
> > configure: Found potential Boot JDK using configure arguments
> > checking for Boot JDK... /usr/local/openjdk7
> > checking Boot JDK version... openjdk version "1.7.0_80" OpenJDK Runtime
> > Environment (build 1.7.0_80-b15) OpenJDK 64-Bit Server VM (build 24.80-b11,
> > mixed mode)
> > checking for java in Boot JDK... ok
> > checking for javac in Boot JDK... ok
> > checking for javah in Boot JDK... ok
> > checking for javap in Boot JDK... ok
> > checking for jar in Boot JDK... ok
> > checking for rmic in Boot JDK... ok
> > checking for native2ascii in Boot JDK... ok
> > checking for jtreg... no
> > checking for gcc... /usr/bin/gcc
> > configure: Resolving CC (as /usr/bin/gcc) failed, using /usr/bin/gcc
> > directly.
> > checking resolved symbolic links for CC... /usr/local/bin/gcc48
> > checking if CC is disguised ccache... no, keeping CC
> > configure: Using gcc48 (FreeBSD Ports Collection) C compiler version 4.8.5
> > (located at /usr/local/bin/gcc48)
> > checking whether the C compiler works... yes
> > checking for C compiler default output file name... a.out
> > checking for suffix of executables...
> > checking whether we are cross compiling... no
> > checking for suffix of object files... o
> > checking whether we are using the GNU C compiler... yes
> > checking whether /usr/local/bin/gcc48 accepts -g... yes
> > checking for /usr/local/bin/gcc48 option to accept ISO C89... none needed
> > checking for g++... /usr/bin/g++
> > configure: Resolving CXX (as /usr/bin/g++) failed, using /usr/bin/g++
> > directly.
> > checking resolved symbolic links for CXX... /usr/bin.real/g++
> > checking if CXX is disguised ccache... no, keeping CXX
> > configure: Using g++ (GCC) 4.2.1 patched [FreeBSD] C++ compiler version
> > 20070831 patched [FreeBSD] (located at /usr/bin.real/g++)
> > checking whether we are using the GNU C++ compiler... yes
> > checking whether /usr/bin.real/g++ accepts -g... yes
> > checking for ar... ar
> > configure: Rewriting AR to "/usr/bin/ar"
> > checking how to run the C preprocessor... /usr/local/bin/gcc48 -E
> > configure: Resolving CPP (as /usr/local/bin/gcc48) failed, using
> > /usr/local/bin/gcc48 directly.
> > checking how to run the C++ preprocessor... /usr/bin.real/g++ -E
> > configure: Resolving CXXCPP (as /usr/bin.real/g++) failed, using
> > /usr/bin.real/g++ directly.
> > checking for nm... nm
> > configure: Rewriting NM to "/usr/bin/nm"
> > checking for strip... strip
> > configure: Rewriting STRIP to "/usr/bin/strip"
> > checking for gobjdump... no
> > checking for objdump... objdump
> > configure: Rewriting OBJDUMP to "/usr/bin/objdump"
> > checking for ANSI C header files... yes
> > checking for sys/types.h... yes
> > checking for sys/stat.h... yes
> > checking for stdlib.h... yes
> > checking for string.h... yes
> > checking for memory.h... yes
> > checking for strings.h... yes
> > checking for inttypes.h... yes
> > checking for stdint.h... yes
> > checking for unistd.h... yes
> > checking stdio.h usability... yes
> > checking stdio.h presence... yes
> > checking for stdio.h... yes
> > checking size of int *... 8
> > checking for target address size... 64 bits
> > checking whether byte ordering is bigendian... no
> > checking if compiler supports "-m64"... yes
> > checking if compiler supports "-m64"... yes
> > checking if we should generate debug symbols... false
> > checking if we should zip debug-info files... yes
> > checking what is not needed on bsd?... alsa
> > checking for Mac OS X Java Framework... no
> > checking for X... libraries /usr/local/lib, headers /usr/local/include
> > checking whether -R must be followed by a space... no
> > checking for gethostbyname... yes
> > checking for connect... yes
> > checking for remove... yes
> > checking for shmat... yes
> > checking for IceConnectionNumber in -lICE... yes
> > checking for X11/extensions/shape.h... yes
> > checking for X11/extensions/Xrender.h... yes
> > checking for X11/extensions/XTest.h... yes
> > checking for X11/Intrinsic.h... yes
> > checking for FREETYPE... yes
> > checking for freetype... yes (using pkg-config)
> > checking if we can compile and link with freetype... yes
> > checking if we should bundle freetype... no
> > checking for main in -ljpeg... no
> > configure: Will use jpeg decoder bundled with the OpenJDK source
> > checking for which giflib to use... bundled
> > checking for compress in -lz... yes
> > checking for which zlib to use... bundled
> > checking for cos in -lm... yes
> > checking for dlopen in -ldl... no
> > checking if elliptic curve crypto implementation is present... yes
> > checking for appropriate number of jobs to run in parallel... 7
> > checking whether to use sjavac... no
> > checking that precompiled headers work... yes
> > checking for ccache... /usr/local/bin/ccache
> > checking if ccache supports precompiled headers... yes
> > checking if C-compiler supports ccache precompiled headers... yes
> > checking if build directory is on local disk... yes
> > configure: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/config.status
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/spec.gmk
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/hotspot-spec.gmk
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/bootcycle-spec.gmk
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/compare.sh
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/spec.sh
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/Makefile
> > config.status: creating
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/config.h
> > config.status:
> > /jdk8_sources/build/bsd-x86_64-normal-server-release/config.h is unchanged
> >
> > ====================================================
> > A new configuration has been successfully created in
> > /jdk8_sources/build/bsd-x86_64-normal-server-release
> > using configure arguments '--with-boot-jdk=/usr/local/openjdk7/
> > --with-cups=/usr/local/cups-2.0.4/cups --with-num-cores=8
> > --with-memory-size=8192'.
> >
> > Configuration summary:
> > * Debug level: release
> > * JDK variant: normal
> > * JVM variants: server
> > * OpenJDK target: OS: bsd, CPU architecture: x86, address length: 64
> >
> > Tools summary:
> > * Boot JDK: openjdk version "1.7.0_80" OpenJDK Runtime Environment
> > (build 1.7.0_80-b15) OpenJDK 64-Bit Server VM (build 24.80-b11, mixed
> > mode) (at /usr/local/openjdk7)
> > * C Compiler: gcc48 (FreeBSD Ports Collection) version 4.8.5 (at
> > /usr/local/bin/gcc48)
> > * C++ Compiler: g++ (GCC) 4.2.1 patched [FreeBSD] version 20070831
> > patched [FreeBSD] (at /usr/bin.real/g++)
> >
> > Build performance summary:
> > * Cores to use: 7
> > * Memory limit: 8192 MB
> > * ccache status: installed and in use
> >
> > WARNING: The result of this configuration has overridden an older
> > configuration. You *should* run 'make clean' to make sure you get a
> > proper build. Failure to do so might result in strange build problems.
> >
> >
> > Make Version Used
> > -----------------
> >
> > [root at Freebsd_84/jdk8_sources]# make -v
> > GNU Make 3.82
> > Built for amd64-portbld-freebsd8.4
> > Copyright (C) 2010 Free Software Foundation, Inc.
> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
> >>
> > This is free software: you are free to change and redistribute it.
> > There is NO WARRANTY, to the extent permitted by law.
> > _______________________________________________
> > freebsd-java at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-java
> > To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
>
>
More information about the freebsd-java
mailing list