This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Misaligned stack on 32-bit s390?


Hi,

i have built glibc from scratch with the patch and get the following error while compiling rtld.c:
/tmp/cc3Ata9V.s: Assembler messages:
/tmp/cc3Ata9V.s:111: Error: symbol `.L3' is already defined
/tmp/cc3Ata9V.s:124: Error: symbol `.L4' is already defined

The compiler generated these labels in function _dl_initial_error_catch_tsd in order to get the address of the variable data via literal pool and got. A compiler with --with-arch=z9-109 uses larl-instruction to get the address and does not generate these labels.

Using numbered labels in the inline-assembly in macro RTLD_START (see patch) avoids the label collision and the glibc build succeeds
There is no test-suite regression and the stack is adjusted.
The inline-assembly in s390-64/dl-machine.h does not use any label,
thus there we need no change.

Thanks.
Stefan


---
2014-11-12  Stefan Liebler  <stli@linux.vnet.ibm.com>

	* sysdeps/s390/s390-32/dl-machine.h (RTLD_START):
	Use numbered labels in inline assembly.

Attachment: 20141112_s390_32_dlmachine
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]