P4 to Git Change 1347598 by atamazov@ata_h1 on 2016/11/30 06:48:06
P4 to Git Change 1347598 by atamazov@ata_h1 on 2016/11/30 06:48:06

	SWDEV-79309 - [ROCm][OCLonLC][AMDGPU asm] OclElf: Correctly skip symbols which have special section indexes.

	[Issues]
	Kernels which contain absolute symbols can't be run. Error message looks like:
	"OclElf::getSymbolInfo() failed in gelf_getshdr() - Invalid argument."

	[Reason]
	Symbols which have special section indexes (e.g. absolute symbols)
	are incorrectly handled by the compiler library.

	[Solution]
	Correctly skip symbols which have special section indexes in the loader.
	Promote the fix into compiler/legacy-lib at once.

	[Remarks/Misc]
	Absolute symbols do not normally produced by OpenCL compiler,
	but may come from kernels written in assembly language.
	AMDGPU asm exports all symbols, even ABSOLUTE LOCAL HIDDEN INTERNAL etc.
	Impossibility to disable export of useless symbols is known issue of llvm-mc
	core, see https://llvm.org/bugs/show_bug.cgi?id=27201.
	Note that presence of useless symbols does not make ELF invalid.

	[Review] http://ocltc.amd.com/reviews/r/11921/
	Evgeny Mankov (OK)

	[Tests]
	Tested that issue with asm kernels has gone.
	PASS TeamCity - Pre-checkin for CL1347161 timestamped:2016-11-29 21:54:40 Rev:0063

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/loaders/elf/elf.cpp#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#36 edit

ROCm-Developer-Tools/ROCclr,ROCm-Developer-Tools/ROCclr