-
Bug
-
Resolution: Fixed
-
P4
-
hs25
-
b09
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8003435 | 8 | David Holmes | P4 | Resolved | Fixed | b65 |
JDK-8017824 | 7u45 | David Holmes | P4 | Closed | Fixed | b01 |
JDK-8003370 | 7u40 | David Holmes | P4 | Closed | Fixed | b02 |
JDK-8003139 | hs24 | David Holmes | P4 | Resolved | Fixed | master |
The Full Debug Symbol (FDS) makefile logic is as follows (<os>/makefiles/defs.make):
ifeq ($(BUILD_FLAVOR), product)
FULL_DEBUG_SYMBOLS ?= 1
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
else
# debug variants always get Full Debug Symbols (if available)
ENABLE_FULL_DEBUG_SYMBOLS = 1
endif
_JUNK_ := $(shell \
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
...
else
OBJCOPY=
endif
So if we have explicitly disabled FDS then OBJCOPY will be cleared by the above. However we then have:
ifeq ($(OBJCOPY),)
_JUNK_ := $(shell \
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
ENABLE_FULL_DEBUG_SYMBOLS=0
_JUNK_ := $(shell \
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
So we then erroneously (and noisily) report that OBJCOPY could not be found when in fact we never looked for it, and didn't need to.
The OBJCOPY logic should be folded into the preceding " ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)" block.
ifeq ($(BUILD_FLAVOR), product)
FULL_DEBUG_SYMBOLS ?= 1
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
else
# debug variants always get Full Debug Symbols (if available)
ENABLE_FULL_DEBUG_SYMBOLS = 1
endif
_JUNK_ := $(shell \
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
...
else
OBJCOPY=
endif
So if we have explicitly disabled FDS then OBJCOPY will be cleared by the above. However we then have:
ifeq ($(OBJCOPY),)
_JUNK_ := $(shell \
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
ENABLE_FULL_DEBUG_SYMBOLS=0
_JUNK_ := $(shell \
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
So we then erroneously (and noisily) report that OBJCOPY could not be found when in fact we never looked for it, and didn't need to.
The OBJCOPY logic should be folded into the preceding " ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)" block.
- backported by
-
JDK-8003139 Hotspot makefiles report missing OBJCOPY command in the wrong circumstances
-
- Resolved
-
-
JDK-8003435 Hotspot makefiles report missing OBJCOPY command in the wrong circumstances
-
- Resolved
-
-
JDK-8003370 Hotspot makefiles report missing OBJCOPY command in the wrong circumstances
-
- Closed
-
-
JDK-8003371 Hotspot makefiles report missing OBJCOPY command in the wrong circumstances
-
- Closed
-
-
JDK-8017824 Hotspot makefiles report missing OBJCOPY command in the wrong circumstances
-
- Closed
-