A harness to build the source code from openjdk.java.net using Free Software tools and dependencies

Overview
IcedTea
=======

The IcedTea project provides a harness to build the source code from
openjdk.java.net using Free Software tools and dependencies.

IcedTea addresses two problems: it eliminates the build requirement on
proprietary build tools and provides additional patches and features
not available in OpenJDK.

IcedTea also provides build scripts and patches that fix a number of issues
which are as yet unresolved upstream.

See INSTALL for build instructions.

Homepage (wiki):
  https://icedtea.classpath.org/

Bugs (bugzilla):
  https://icedtea.classpath.org/bugzilla

Mailing List: 
  [email protected]
  https://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev

FAQ:
  https://icedtea.classpath.org/wiki/FrequentlyAskedQuestions

Anonymous Mercurial checkout:
  hg clone https://icedtea.classpath.org/hg/icedtea

Java compatibility
------------------

IcedTea is derived from OpenJDK, an open-source implementation of
the Java SE platform. See https://openjdk.java.net/groups/conformance/
for information on compatibility testing.

A Note About License Headers
----------------------------

Some sources downloaded from openjdk.java.net do not display the GPL
license header.  Instances are:

 - We are assuming that these files are owned by Sun:
   openjdk/jdk/src/share/classes/**/resources/*.properties

The Zero Assembler and Shark Ports
==================================

Gary Benson has developed a port of the interpreter included in the
HotSpot virtual machine which avoids using any assembly language.  As
a pure C++ interpreter, it should be possible to build this on most
architectures and have a working (albeit slow) version of OpenJDK.
Successful builds have been made on ppc, ppc64 and arm.  The zero
assembler port is enabled by default on platforms other than x86,
x86_64 and sparc.  To enable it on these platforms, use the
--enable-zero option.

Gary is now working on a JIT called Shark to provide better
performance on platforms which need to use the zero port. A
preliminary version of this is now included with IcedTea and can be
built with the --enable-shark option.

CACAO as VM
===========

The CACAO virtual machine (http://www.cacaovm.org) can be used as an
alternative to the HotSpot virtual machine. One advantage of this is
that it already provides a JIT for many platforms to which HotSpot has
not yet been ported, including ppc, ppc64, arm and mips.  To use CACAO
as the VM, use the --with-cacao option.  This will download a snapshot
of CACAO during the build, which has been tested with this version of
IcedTea7.

The environment variable CACAO_CONFIGURE_ARGS can be used to pass
additional arguments to the cacao configure.

PulseAudio Mixer
================

Passing --enable-pulse-java to configure will build the PulseAudio Mixer for 
java. This allows java programs to use PulseAudio as the sound backend.

SystemTap Support
=================

configure will try to find the systemtap runtime development files (sdt.h and
the dtrace python script wrapper), enable compilation of static markers in the
hotspot code and install a systemtap hotspot.stp tapset for easy tracing with
systemtap's stap utility. The probes are documented in tapset/hotspot.stp.

This requires the systemtap-sdt-devel package as a build dependency and
optionally the systemtap package at run time when the user want to use
the tapset to trace Java programs. The probes have zero overhead when
not used and can safely be compiled in even when not used at runtime.

Support for Additional VMs
==========================

Although IcedTea can be built multiple times to use a different virtual
machine, additional VMs can be built without building the other components
multiple times.

On architectures where hotspot is available, use
   --with-additional-vms=cacao,zero  (or shark instead of zero)
on architectures where only zero (or shark) is available, use
   --with-additional-vms=cacao
to build the additional VM's.  It's not possible to build cacao as the
default VM, and zero as additional VM.
To build zero as the default VM and shark as an additional VM, use
   --enable-zero --with-additional-vms=shark

The additional VM's are available by calling the java with the option
`-cacao', `-zero' or `-shark', or by calling the java tools with
`-J-
  '. If the build was configured with '--enable-shark',
use `-Xint' to just use the zero VM.

 
You might also like...

Java serialization library, proto compiler, code generator

Java serialization library, proto compiler, code generator

A java serialization library with built-in support for forward-backward compatibility (schema evolution) and validation. efficient, both in speed and

Dec 23, 2022

Auto Code Audit Framework for Java

Auto Code Audit Framework for Java

前言 笔者最近在研究java自动化代码审计这方面的内容,也看了一些相关的文章,其中主要是跟着4ra1n师傅的文章进行学习的。目前学到的有两种自动化审计思路,一是AST,二是ASM。前者基于java源代码,后者基于字节码。

Nov 30, 2022

A Registration Form using Java Swing with database connectivity

A Registration Form using Java Swing with database connectivity

Registration Form A Registration Form using Java Swing with database connectivity.

Jan 16, 2022

Using java+ffmpeg+mpegts to share desktop

Using java+ffmpeg+mpegts to share desktop

desktop share using java step1 run DeskstopServerStart.java step2 modify ffmpeg path in DesktopClient.java,then run DesktopClient.java step3 in deskto

Aug 10, 2022

Cobaltstrike4.1 Source

CobaltstrikeSource Cobaltstrike4.1 Source 这是反编译后的Cobaltstrike4.1源码,修改了一点反编译后的bug,teamserver与agressor均能正常调试使用,若想自己修改调试那个文件只需把该文件复制到src下即可。 这是魔改Cobaltst

Sep 7, 2021

An open-source component of TabLight project "Base-API"

DataAddons is a library (or framework?) created for Minecraft providing comfortable abstractions making additions over already existing data, generally, it is anti-pattern ans YOU SHOULDN'T USE IT in normal programms.

Mar 8, 2022

Compilation of code scripts from the Fall 2021 semester of Intelligent Tunneling subteam.

VIP-Fall-2021 Compilation of code scripts from the Fall 2021 semester of Intelligent Tunneling subteam. Table of Contents Overview Data Normalization

Feb 2, 2022

Simple way of causing a bsod using the native api implemented into a 1.12.2 Forge mod

Simple-BSOD-Mod Simple way of causing a bsod using the native api implemented into a 1.12.2 Forge mod. Dowload It HERE To make your own you can go to

Dec 28, 2022

The project was created using the API of the Spotify application.

Spotify API The project was created using the API of the Spotify application.

Jan 27, 2022
Comments
  • GH003: Import ECC test patch from Zdeněk Žamberský

    GH003: Import ECC test patch from Zdeněk Žamberský

    2022-07-12 Andrew John Hughes [email protected]

    GH003: Import ECC test patch from Zdeněk Žamberský
    * NEWS: Fix issue reference.
    * fsg.sh.in: Update references to
    ECC patches.
    * patches/gh002-3curve-test.patch,
    * patches/gh002-4curve-test.patch:
    Renamed to...
    * patches/gh003-3curve-test.patch,
    * patches/gh003-4curve-test.patch:
    ...as GitHub numbers both pull requests
    and issues from the same sequence.
    

    Resolves: #3

    opened by gnu-andrew 0
  • GH002: Import ECC test patch from Zdeněk Žamberský

    GH002: Import ECC test patch from Zdeněk Žamberský

    2022-07-12 Andrew John Hughes [email protected]

    * AUTHORS: Add Zdeněk Žamberský.
    * NEWS: Updated.
    * fsg.sh.in: Update references to
    ECC patches.
    * patches/gh001-3curve.patch,
    * patches/gh001-4curve.patch:
    Remove changes to tests, now moved
    to gh002* test patches.
    * patches/gh002-3curve.patch,
    * patches/gh002-4curve.patch:
    Use a separate patch for tests and
    include additional cases from work
    by Zdeněk.
    

    Resolves: #2

    opened by gnu-andrew 0
  • Import ECC test patch from Zdeněk Žamberský

    Import ECC test patch from Zdeněk Žamberský

    https://src.fedoraproject.org/rpms/java-11-openjdk/pull-request/156

    We'll include the test patch as is for now in 6.0, but some of it should go upstream and to other releases.

    opened by gnu-andrew 0
  • GH001: Update ECC patches following JDK-8226374

    GH001: Update ECC patches following JDK-8226374

    2022-07-04 Andrew John Hughes [email protected]

    * NEWS: Updated.
    * patches/gh001-3curve.patch: Renamed
    from pr3818-3curve.patch. Updated to
    apply after JDK-8226374, including
    removal of unsupported curve from
    jdk.tls.disabledAlgorithms.
    * patches/gh001-4curve.patch: Likewise
    for the 4 curve version, renamed from
    pr3818-4curve.patch
    

    Fixes: #1

    opened by gnu-andrew 0
Owner
IcedTea
IcedTea
Free implementation of Play Services

microG GmsCore is a FLOSS (Free/Libre Open Source Software) framework to allow applications designed for Google Play Services to run on systems, where Play Services is not available.

microG Project 5.2k Dec 31, 2022
Tools for working with generic types

TypeTools A simple, zero-dependency library for working with types. Supports Java 1.6+ and Android. Introduction One of the sore points with Java invo

Jonathan Halterman 585 Jan 9, 2023
Logisim-evolution is educational software for designing and simulating digital logic circuits

Branch master: Branch develop: Logisim-evolution Table of contents Features Requirements Downloads Nightly builds (unstable) Pictures of Logisim-evolu

null 3k Jan 4, 2023
Find different kinds of algorithm questions and solutions in different software languages

Algorithm Samples ⭐ Find this project useful? If you think it has helped you, you can star this repo and join the Stargazers and motivate us to share

Serkan Alc 37 Oct 31, 2022
This repository holds the source code for TML (Tecknix Mod Loader)'s API.

This repository contains the modding API not the MDK (Mod Development Kit). This repository will not give you the ability to mod Tecknix Client but you can contribute to the repository if you have events you would like to add.

Tecknix Client 6 Aug 1, 2022
An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch!

OpenBlocks An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch! What is OpenBlocks?

OpenBlocks 30 Dec 16, 2022
A Local implementation of a java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

A Local implementation of java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

Isaac Barry 1 Feb 12, 2022
The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

yGuard yGuard is an open-source Java obfuscation tool. With yGuard it is easy as pie ( ?? ) to configure obfuscation through an extensive ant task. yG

yWorks GmbH 265 Jan 2, 2023
JPassport works like Java Native Access (JNA) but uses the Foreign Linker API instead of JNI. Similar to JNA, you declare a Java interface that is bound to the external C library using method names.

JPassport works like Java Native Access (JNA) but uses the Foreign Linker API instead of JNI. Similar to JNA, you declare a Java interface t

null 28 Dec 30, 2022
RealmeDirac - an open-source Android application written in java

RealmeDirac is an open-source Android application written in java. RealmeDirac is a feature introduced by realme & dirac in realmeUI for sound optimisation, trying to recreate same thing, this is scratch written app aiming to provide same features as realmeDirac..

psionicprjkt 4 Feb 21, 2022