Displaying 5 results from an estimated 5 matches for "cryptopro_ext".
2019 Jul 15
2
lld-link crash when build openssl with LTO
Hi Rui,
We met a lld-link crash problem when build 32bits openssl1.0 with LTO in uefi firmware. We narrow down and figure out a simple test case to reproduce this problem as blow. Please advise. Thank you!
$ cat main.c
void TlsDriverEntryPoint ()
{
unsigned char *ret = 0;
const unsigned char cryptopro_ext[17] = {0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};
int length =17;
const char *Source;
Source = (void*)cryptopro_ext;
while (length--) {
*(ret++) = *(Source++);
}
}
$ cat memcpy.c
typedef unsigned int size_t;
void *memcpy(void *dest, const...
2019 Jul 16
2
lld-link crash when build openssl with LTO
...0 with LTO in
> uefi firmware. We narrow down and figure out a simple test case to
> reproduce this problem as blow. Please advise. Thank you!
>
>
>
> $ cat main.c
>
> void TlsDriverEntryPoint ()
>
> {
>
> unsigned char *ret = 0;
>
> const unsigned char cryptopro_ext[17] = {0x00,0x00,0x00,0x00,
> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};
>
> int length =17;
>
> const char *Source;
>
> Source = (void*)cryptopro_ext;
>
> while (length--) {
>
> *(ret++) = *(Source++);
>
> }
>
> }...
2019 Jul 16
3
lld-link crash when build openssl with LTO
...to prevent usage of memcpy calls, we still always
get a memcpy builtin in TlsDriverEntryPoint(). I see this even without
-flto (e.g. try with just -emit-llvm).
I guess it is because this memcpy is not coming from the original source,
but rather from the initialization code created by clang for the
cryptopro_ext local variable. The code that generates that must not honor
-fno-builtin. I see this even when I remove -flto (and this gets converted
to a call to _memcpy in the final assembly with or without -fno-builtin).
I can't do the full LTO link with these options (don't have a windows
linker I gu...
2019 Jul 16
2
lld-link crash when build openssl with LTO
...0 with LTO in
> uefi firmware. We narrow down and figure out a simple test case to
> reproduce this problem as blow. Please advise. Thank you!
>
>
>
> $ cat main.c
>
> void TlsDriverEntryPoint ()
>
> {
>
> unsigned char *ret = 0;
>
> const unsigned char cryptopro_ext[17] = {0x00,0x00,0x00,0x00,
> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};
>
> int length =17;
>
> const char *Source;
>
> Source = (void*)cryptopro_ext;
>
> while (length--) {
>
> *(ret++) = *(Source++);
>
> }
>
> }...
2019 Jul 16
2
lld-link crash when build openssl with LTO
...0 with LTO in
> uefi firmware. We narrow down and figure out a simple test case to
> reproduce this problem as blow. Please advise. Thank you!
>
>
>
> $ cat main.c
>
> void TlsDriverEntryPoint ()
>
> {
>
> unsigned char *ret = 0;
>
> const unsigned char cryptopro_ext[17] = {0x00,0x00,0x00,0x00,
> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};
>
> int length =17;
>
> const char *Source;
>
> Source = (void*)cryptopro_ext;
>
> while (length--) {
>
> *(ret++) = *(Source++);
>
> }
>
> }...