← Back to team overview

openjdk team mailing list archive

[Bug 1617379] [NEW] ftbfs due to missing headers when pch is disabled

 

Public bug reported:

When pre-compiled headers are disabled the build fails due to
psOldGen.hpp being missing from a few headers.

The fix is to apply the same patch that openjdk-7 has (debian/patches
/no-pch-build.patch) and to update the rules from:

ifneq (,$(filter $(DEB_HOST_ARCH), sparc64))
  export DISABLE_PRECOMPILED_HEADER=1
endif

to:

ifneq (,$(filter $(DEB_HOST_ARCH), arm64 sparc64))
  export USE_PRECOMPILED_HEADER=0
  DISTRIBUTION_PATCHES += \
        debian/patches/no-pch-build.diff
endif

As arm64 segfaults when using pch.

Error bellow (forcefully disabled pch on amd64):

Compiling /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp
rm -f asPSOldGen.o
x86_64-linux-gnu-g++-4.8 -DLINUX -D_GNU_SOURCE -DAMD64 -DPRODUCT  -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/prims -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/precompiled -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/cpu/x86/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os_cpu/linux_x86/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os/linux/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"23.40-b40\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"tdaitx\"" -DHOTSPOT_LIB_ARCH=\"amd64\" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DDERIVATIVE_ID="\"IcedTea6 1.13.12\"" -DDISTRIBUTION_ID="\"Ubuntu 14.04.4 LTS, package 6b40-1.13.12-0ubuntu0.14.04.1\"" -DDEB_MULTIARCH="\"x86_64-linux-gnu\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_linux_x86 -DTARGET_OS_ARCH_MODEL_linux_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -std=gnu++98 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -m64 -pipe -DDONT_USE_PRECOMPILED_HEADER -g -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -fno-omit-frame-pointer -DINCLUDE_TRACE  -Wpointer-arith -Wsign-compare    -c -MMD -MP -MF ../generated/dependencies/asPSOldGen.o.d -o asPSOldGen.o /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp
In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:33:0:
/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp: In member function 'oopDesc* PSPromotionManager::copy_to_survivor_space(oop)':
/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp:131:37: error: invalid use of incomplete type 'class PSOldGen'

            new_obj = (oop)old_gen()->cas_allocate(new_obj_size);
                                     ^
In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp:30:0,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp:32,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/oop.inline.hpp:29,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classFileParser.hpp:30,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classLoader.hpp:28,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/systemDictionary.hpp:29,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/javaClasses.hpp:28,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:26:
/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp:38:7: error: forward declaration of 'class PSOldGen'
 class PSOldGen;
       ^
In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:33:0:
/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp:136:43: error: invalid use of incomplete type 'class PSOldGen'
             HeapWord* lab_base = old_gen()->cas_allocate(OldPLABSize);
                                           ^
In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp:30:0,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp:32,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/oop.inline.hpp:29,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classFileParser.hpp:30,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classLoader.hpp:28,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/systemDictionary.hpp:29,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/javaClasses.hpp:28,
                 from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:26:
/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp:38:7: error: forward declaration of 'class PSOldGen'
 class PSOldGen;
       ^
make[8]: *** [arrayKlassKlass.o] Error 1
make[8]: *** Waiting for unfinished jobs....
make[8]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product'
make[7]: *** [the_vm] Error 2
make[7]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product'
make[6]: *** [product] Error 2
make[6]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir'
make[5]: *** [generic_build2] Error 2
make[5]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/make'
make[4]: *** [product] Error 2
make[4]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/make'
make[3]: *** [hotspot-build] Error 2
make[3]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj'
make[2]: *** [build_product_image] Error 2
make[2]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj'
make[1]: *** [stamps/icedtea-ecj.stamp] Error 2
make[1]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build'
make: *** [stamps/build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

** Affects: openjdk-6 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenJDK,
which is subscribed to openjdk-6 in Ubuntu.
https://bugs.launchpad.net/bugs/1617379

Title:
  ftbfs due to missing headers when pch is disabled

Status in openjdk-6 package in Ubuntu:
  New

Bug description:
  When pre-compiled headers are disabled the build fails due to
  psOldGen.hpp being missing from a few headers.

  The fix is to apply the same patch that openjdk-7 has (debian/patches
  /no-pch-build.patch) and to update the rules from:

  ifneq (,$(filter $(DEB_HOST_ARCH), sparc64))
    export DISABLE_PRECOMPILED_HEADER=1
  endif

  to:

  ifneq (,$(filter $(DEB_HOST_ARCH), arm64 sparc64))
    export USE_PRECOMPILED_HEADER=0
    DISTRIBUTION_PATCHES += \
          debian/patches/no-pch-build.diff
  endif

  As arm64 segfaults when using pch.

  Error bellow (forcefully disabled pch on amd64):

  Compiling /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp
  rm -f asPSOldGen.o
  x86_64-linux-gnu-g++-4.8 -DLINUX -D_GNU_SOURCE -DAMD64 -DPRODUCT  -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/prims -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/precompiled -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/cpu/x86/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os_cpu/linux_x86/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os/linux/vm -I/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/os/posix/vm -I../generated -DHOTSPOT_RELEASE_VERSION="\"23.40-b40\"" -DHOTSPOT_BUILD_TARGET="\"product\"" -DHOTSPOT_BUILD_USER="\"tdaitx\"" -DHOTSPOT_LIB_ARCH=\"amd64\" -DHOTSPOT_VM_DISTRO="\"OpenJDK\"" -DDERIVATIVE_ID="\"IcedTea6 1.13.12\"" -DDISTRIBUTION_ID="\"Ubuntu 14.04.4 LTS, package 6b40-1.13.12-0ubuntu0.14.04.1\"" -DDEB_MULTIARCH="\"x86_64-linux-gnu\"" -DTARGET_OS_FAMILY_linux -DTARGET_ARCH_x86 -DTARGET_ARCH_MODEL_x86_64 -DTARGET_OS_ARCH_linux_x86 -DTARGET_OS_ARCH_MODEL_linux_x86_64 -DTARGET_COMPILER_gcc -DCOMPILER2 -DCOMPILER1 -std=gnu++98 -fpic -fno-rtti -fno-exceptions -D_REENTRANT -fcheck-new -fvisibility=hidden -m64 -pipe -DDONT_USE_PRECOMPILED_HEADER -g -O3 -fno-strict-aliasing -DVM_LITTLE_ENDIAN -D_LP64=1 -fno-omit-frame-pointer -DINCLUDE_TRACE  -Wpointer-arith -Wsign-compare    -c -MMD -MP -MF ../generated/dependencies/asPSOldGen.o.d -o asPSOldGen.o /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp
  In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:33:0:
  /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp: In member function 'oopDesc* PSPromotionManager::copy_to_survivor_space(oop)':
  /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp:131:37: error: invalid use of incomplete type 'class PSOldGen'

              new_obj = (oop)old_gen()->cas_allocate(new_obj_size);
                                       ^
  In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp:30:0,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp:32,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/oop.inline.hpp:29,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classFileParser.hpp:30,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classLoader.hpp:28,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/systemDictionary.hpp:29,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/javaClasses.hpp:28,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:26:
  /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp:38:7: error: forward declaration of 'class PSOldGen'
   class PSOldGen;
         ^
  In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:33:0:
  /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp:136:43: error: invalid use of incomplete type 'class PSOldGen'
               HeapWord* lab_base = old_gen()->cas_allocate(OldPLABSize);
                                             ^
  In file included from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp:30:0,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp:32,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/oop.inline.hpp:29,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classFileParser.hpp:30,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/classLoader.hpp:28,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/systemDictionary.hpp:29,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/classfile/javaClasses.hpp:28,
                   from /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/oops/arrayKlassKlass.cpp:26:
  /home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp:38:7: error: forward declaration of 'class PSOldGen'
   class PSOldGen;
         ^
  make[8]: *** [arrayKlassKlass.o] Error 1
  make[8]: *** Waiting for unfinished jobs....
  make[8]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product'
  make[7]: *** [the_vm] Error 2
  make[7]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir/linux_amd64_compiler2/product'
  make[6]: *** [product] Error 2
  make[6]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk.build-ecj/hotspot/outputdir'
  make[5]: *** [generic_build2] Error 2
  make[5]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/make'
  make[4]: *** [product] Error 2
  make[4]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj/hotspot/make'
  make[3]: *** [hotspot-build] Error 2
  make[3]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj'
  make[2]: *** [build_product_image] Error 2
  make[2]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build/openjdk-ecj'
  make[1]: *** [stamps/icedtea-ecj.stamp] Error 2
  make[1]: Leaving directory `/home/tdaitx/openjdk-6-6b40-1.13.12/build'
  make: *** [stamps/build] Error 2
  dpkg-buildpackage: error: debian/rules build gave error exit status 2

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/1617379/+subscriptions


Follow ups