[Galaxy Tab 2 Q&A, Help & Troubleshooting] dorfd1:
target thumb C: sh <= external/mksh/src/eval.c
target thumb C: sh <= external/mksh/src/exec.c
target thumb C: sh <= external/mksh/src/expr.c
target thumb C: sh <= external/mksh/src/funcs.c
target thumb C: sh <= external/mksh/src/histrap.c
target thumb C: sh <= external/mksh/src/jobs.c
target thumb C: sh <= external/mksh/src/lex.c
target thumb C: sh <= external/mksh/src/main.c
target thumb C: sh <= external/mksh/src/misc.c
target thumb C: sh <= external/mksh/src/shf.c
target thumb C: sh <= external/mksh/src/syn.c
target thumb C: sh <= external/mksh/src/tree.c
target thumb C: sh <= external/mksh/src/var.c
target thumb C: showlease <= external/dhcpcd/showlease.c
target arm C: smc_pa_ctrl <= hardware/ti/omap4xxx/security/smc_pa_ctrl/smc_pa_ctrl.c
target arm C: smc_pa_ctrl <= hardware/ti/omap4xxx/security/smc_pa_ctrl/smc_pa_ctrl_linux.c
Import includes file: /home/owner/android/system/out/target/product/p3110/obj/EXECUTABLES/surfaceflinger_intermediates/import_includes
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/Client.cpp
target thumb C++: libsurfaceflinger <= frameworks/native/services/surfaceflinger/DisplayDevice.cpp
In file included from frameworks/native/services/surfaceflinger/DisplayDevice.cpp:35:
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.h:219:16: warning: struct 'HWComposer' was previously declared as a class [-Wmismatched-tags]
friend struct HWComposer;
^
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.h:58:7: note: previous use is here
class HWComposer
^
In file included from frameworks/native/services/surfaceflinger/DisplayDevice.cpp:39:
frameworks/native/services/surfaceflinger/DisplayDevice.h:40:1: warning: class 'DisplayInfo' was previously declared as a struct [-Wmismatched-tags]
class DisplayInfo;
^
frameworks/native/include/ui/DisplayInfo.h:28:8: note: previous use is here
struct DisplayInfo {
^
frameworks/native/services/surfaceflinger/DisplayDevice.h:40:1: note: did you mean struct here?
class DisplayInfo;
^~~~~
struct
frameworks/native/services/surfaceflinger/DisplayDevice.cpp:76:18: error: use of undeclared identifier 'HWC_POWER_MODE_OFF'
mPowerMode(HWC_POWER_MODE_OFF),
^
frameworks/native/services/surfaceflinger/DisplayDevice.cpp:116:19: error: use of undeclared identifier 'HWC_POWER_MODE_NORMAL'
HWC_POWER_MODE_NORMAL : HWC_POWER_MODE_OFF;
^
frameworks/native/services/surfaceflinger/DisplayDevice.cpp:116:43: error: use of undeclared identifier 'HWC_POWER_MODE_OFF'
HWC_POWER_MODE_NORMAL : HWC_POWER_MODE_OFF;
^
frameworks/native/services/surfaceflinger/DisplayDevice.cpp:351:27: error: use of undeclared identifier 'HWC_POWER_MODE_OFF'
return (mPowerMode != HWC_POWER_MODE_OFF);
^
2 warnings and 4 errors generated.
make: *** [/home/owner/android/system/out/target/product/p3110/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates/DisplayDevice.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from frameworks/native/services/surfaceflinger/Client.cpp:26:
In file included from frameworks/native/services/surfaceflinger/Layer.h:42:
In file included from frameworks/native/services/surfaceflinger/SurfaceFlinger.h:57:
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.h:219:16: warning: struct 'HWComposer' was previously declared as a class [-Wmismatched-tags]
friend struct HWComposer;
^
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.h:58:7: note: previous use is here
class HWComposer
^

instead of HWComposer being declared as a class changed it to be declared as a struct.

I wonder what android-andi did to get his android 5.0 rom to compile. I think this error is telling that surfaceflinger is broken in cm12.

the device and kernel sources I used in my attempt to compile cm12 are just the cm11 ones.