Building open jdk 8 from source fails
lee json
jsonlee.ft at gmail.com
Sun Jan 18 03:47:26 UTC 2015
I switch to cloning repository at
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/ by command `hg clone
http://hg.openjdk.java.net/jdk8u/jdk8u-dev`
Then build with command line `bash ./configure
--with-boot-jdk=/home/jason/jdk1.7.0_6` or `bash ./configure`. And
then execute `make` or `make all` command.
The first step i.e. configure successfully completes. Its output looks
as the section configure. But failing compile source as the section of
make, when calling make/ make all. With or wihtout make clean before
make/ make all doesn't make any differences.
How to fix such errors? Thanks
== start configure ==
...
Configuration summary:
* Debug level: release
* JDK variant: normal
* JVM variants: server
* OpenJDK target: OS: linux, CPU architecture: x86, address length: 32
Tools summary:
* Boot JDK: java version "1.7.0_60" Java(TM) SE Runtime
Environment (build 1.7.0_60-b19) Java HotSpot(TM) Server VM (build
24.60-b09, mixed mode) (at /home/jason/jdk1.7.0_60)
* C Compiler: gcc-4.9 (Debian 4.9.1-19) version 4.9.1 (at /usr/bin/gcc-4.9)
* C++ Compiler: g++-4.9 (Debian 4.9.1-19) version 4.9.1 (at /usr/bin/g++-4.9)
Build performance summary:
* Cores to use: 4
* Memory limit: 7998 MB
* ccache status: installed, but disabled (version older than 3.1.4)
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.
== end configure ==
== make begin result ==
Building OpenJDK for target 'all' in configuration
'linux-x86-normal-server-release'
## Starting langtools
Compiling 2 files for BUILD_TOOLS
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:310:
error: cannot find symbol
return tk.accepts(S.token(lookahead + 1).kind);
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:318:
error: cannot find symbol
return tk1.accepts(S.token(lookahead + 1).kind) &&
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:319:
error: cannot find symbol
tk2.accepts(S.token(lookahead + 2).kind);
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:327:
error: cannot find symbol
return tk1.accepts(S.token(lookahead + 1).kind) &&
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:328:
error: cannot find symbol
tk2.accepts(S.token(lookahead + 2).kind) &&
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:329:
error: cannot find symbol
tk3.accepts(S.token(lookahead + 3).kind);
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:340:
error: cannot find symbol
if (!kinds[lookahead].accepts(S.token(lookahead + 1).kind)) {
^
symbol: variable kind
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:355:
error: cannot find symbol
switch (token.kind) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:356:
error: constant string expression required
case SEMI:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:359:
error: constant string expression required
case PUBLIC:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:360:
error: constant string expression required
case FINAL:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:361:
error: constant string expression required
case ABSTRACT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:362:
error: constant string expression required
case MONKEYS_AT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:363:
error: constant string expression required
case EOF:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:364:
error: constant string expression required
case CLASS:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:365:
error: constant string expression required
case INTERFACE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:366:
error: constant string expression required
case ENUM:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:368:
error: constant string expression required
case IMPORT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:372:
error: constant string expression required
case LBRACE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:373:
error: constant string expression required
case RBRACE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:374:
error: constant string expression required
case PRIVATE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:375:
error: constant string expression required
case PROTECTED:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:376:
error: constant string expression required
case STATIC:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:377:
error: constant string expression required
case TRANSIENT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:378:
error: constant string expression required
case NATIVE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:379:
error: constant string expression required
case VOLATILE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:380:
error: reference to SYNCHRONIZED is ambiguous, both variable
SYNCHRONIZED in TokenKind and variable SYNCHRONIZED in Tag match
case SYNCHRONIZED:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:381:
error: constant string expression required
case STRICTFP:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:382:
error: constant string expression required
case LT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:383:
error: constant string expression required
case BYTE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:384:
error: constant string expression required
case SHORT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:385:
error: constant string expression required
case CHAR:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:386:
error: constant string expression required
case INT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:387:
error: constant string expression required
case LONG:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:388:
error: constant string expression required
case FLOAT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:389:
error: constant string expression required
case DOUBLE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:390:
error: constant string expression required
case BOOLEAN:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:391:
error: constant string expression required
case VOID:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:395:
error: constant string expression required
case UNDERSCORE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:396:
error: constant string expression required
case IDENTIFIER:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:400:
error: constant string expression required
case CASE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:401:
error: constant string expression required
case DEFAULT:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:402:
error: reference to IF is ambiguous, both variable IF in TokenKind and
variable IF in Tag match
case IF:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:403:
error: constant string expression required
case FOR:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:404:
error: constant string expression required
case WHILE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:405:
error: constant string expression required
case DO:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:406:
error: reference to TRY is ambiguous, both variable TRY in TokenKind
and variable TRY in Tag match
case TRY:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:407:
error: reference to SWITCH is ambiguous, both variable SWITCH in
TokenKind and variable SWITCH in Tag match
case SWITCH:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:408:
error: reference to RETURN is ambiguous, both variable RETURN in
TokenKind and variable RETURN in Tag match
case RETURN:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:409:
error: reference to THROW is ambiguous, both variable THROW in
TokenKind and variable THROW in Tag match
case THROW:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:410:
error: reference to BREAK is ambiguous, both variable BREAK in
TokenKind and variable BREAK in Tag match
case BREAK:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:411:
error: reference to CONTINUE is ambiguous, both variable CONTINUE in
TokenKind and variable CONTINUE in Tag match
case CONTINUE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:412:
error: constant string expression required
case ELSE:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:413:
error: constant string expression required
case FINALLY:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:414:
error: constant string expression required
case CATCH:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:457:
error: cannot find symbol
if (token.kind == EOF) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:464:
error: cannot find symbol
if (token.pos == errorPos)
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:466:
error: cannot find symbol
errorPos = token.pos;
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:474:
error: cannot find symbol
return syntaxError(token.pos, key);
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:481:
error: cannot find symbol
return syntaxError(token.pos, key, arg);
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:488:
error: cannot find symbol
if (token.kind == tk) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:491:
error: cannot find symbol
setErrorEndPos(token.pos);
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:492:
error: cannot find symbol
reportSyntaxError(S.prevToken().endPos, "expected", tk);
^
symbol: variable endPos
location: class Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:510:
error: cannot find symbol
return illegal(token.pos);
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:517:
error: cannot find symbol
error(token.pos, "mod.not.allowed.here",
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:589:
error: cannot find symbol
if (token.kind == IDENTIFIER) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:590:
error: incompatible types
Name name = token.name();
^
required: Name
found: String
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:593:
error: cannot find symbol
} else if (token.kind == ASSERT) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:595:
error: cannot find symbol
error(token.pos, "assert.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:599:
error: cannot find symbol
warning(token.pos, "assert.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:600:
error: incompatible types
Name name = token.name();
^
required: Name
found: String
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:604:
error: cannot find symbol
} else if (token.kind == ENUM) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:606:
error: cannot find symbol
error(token.pos, "enum.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:610:
error: cannot find symbol
warning(token.pos, "enum.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:611:
error: incompatible types
Name name = token.name();
^
required: Name
found: String
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:615:
error: cannot find symbol
} else if (token.kind == THIS) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:619:
error: incompatible types
Name name = token.name();
^
required: Name
found: String
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:623:
error: cannot find symbol
error(token.pos, "this.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:627:
error: cannot find symbol
} else if (token.kind == UNDERSCORE) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:628:
error: cannot find symbol
warning(token.pos, "underscore.as.identifier");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:629:
error: incompatible types
Name name = token.name();
^
required: Name
found: String
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:642:
error: cannot find symbol
JCExpression t = toP(F.at(token.pos).Ident(ident()));
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:643:
error: cannot find symbol
while (token.kind == DOT) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:644:
error: cannot find symbol
int pos = token.pos;
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:659:
error: cannot find symbol
return literal(prefix, token.pos);
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:676:
error: cannot find symbol
switch (token.kind) {
^
symbol: variable kind
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:677:
error: constant string expression required
case INTLITERAL:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:681:
error: cannot find symbol
Convert.string2int(strval(prefix), token.radix()));
^
symbol: method radix()
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:683:
error: cannot find symbol
error(token.pos, "int.number.too.large", strval(prefix));
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:686:
error: constant string expression required
case LONGLITERAL:
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:690:
error: cannot find symbol
new Long(Convert.string2long(strval(prefix),
token.radix())));
^
symbol: method radix()
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:692:
error: cannot find symbol
error(token.pos, "int.number.too.large", strval(prefix));
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:695:
error: constant string expression required
case FLOATLITERAL: {
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:696:
error: cannot find symbol
String proper = token.radix() == 16 ?
^
symbol: method radix()
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:697:
error: cannot find symbol
("0x"+ token.stringVal()) :
^
symbol: method stringVal()
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:698:
error: cannot find symbol
token.stringVal();
^
symbol: method stringVal()
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:707:
error: cannot find symbol
error(token.pos, "fp.number.too.small");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:709:
error: cannot find symbol
error(token.pos, "fp.number.too.large");
^
symbol: variable pos
location: variable token of type Token
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:714:
error: constant string expression required
case DOUBLELITERAL: {
^
/home/jason/projects/jdk8u-dev/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java:715:
error: cannot find symbol
String proper = token.radix() == 16 ?
^
symbol: method radix()
location: variable token of type Token
100 errors
make[1]: *** No rule to make target 'all', needed by 'default'. Stop.
/home/jason/projects/jdk8u-dev//make/Main.gmk:83: recipe for target
'langtools-only' failed
make: *** [langtools-only] Error 2
== make end result ==
On 2 January 2015 at 17:34, Volker Simonis <volker.simonis at gmail.com> wrote:
> What boot-jdk did you use?
> - You could try with a different one.
>
> What is the exact configure command line?
>
> Which repository did you build from?
> - The latest jdk8 development code line is at:
> http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
>
>
> On Fri, Jan 2, 2015 at 10:24 AM, lee json <jsonlee.ft at gmail.com> wrote:
>> I following the instruction at openjdk.java.net/projects/build-infra/guide.html
>>
>> with commands `configure` and `make (all)`
>>
>> `configure` goes well, but `make` or `make all` fails with error like
>> paste.debian.net/138889/
>>
>> And there is no differences with JAVA_HOME set or unset.
>>
>> How to fix this problem?
>>
>> Environment: debian 8.0, hg 3.1, the latest changeset is
>> 941:1773f1fd0fac with date on Tue Mar 04 11:50:40 2014 -0800
>>
>> Thanks
More information about the build-dev
mailing list