Accepting request 519244 from home:AndreasStieger:branches:network:chromium
fix build with Factory glibc OBS-URL: https://build.opensuse.org/request/show/519244 OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=1039
This commit is contained in:
		
							
								
								
									
										206
									
								
								chromium-60.0.3112.113-breakpad-ucontext.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								chromium-60.0.3112.113-breakpad-ucontext.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,206 @@ | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc	2017-08-29 00:44:03.298893868 +0200 | ||||
| @@ -40,15 +40,15 @@ namespace google_breakpad { | ||||
|   | ||||
|  #if defined(__i386__) | ||||
|   | ||||
| -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.gregs[REG_ESP]; | ||||
|  } | ||||
|   | ||||
| -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.gregs[REG_EIP]; | ||||
|  } | ||||
|   | ||||
| -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, | ||||
| +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t*uc, | ||||
|                                      const struct _libc_fpstate* fp) { | ||||
|    const greg_t* regs = uc->uc_mcontext.gregs; | ||||
|   | ||||
| @@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawC | ||||
|   | ||||
|  #elif defined(__x86_64) | ||||
|   | ||||
| -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.gregs[REG_RSP]; | ||||
|  } | ||||
|   | ||||
| -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.gregs[REG_RIP]; | ||||
|  } | ||||
|   | ||||
| -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, | ||||
| +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t*uc, | ||||
|                                      const struct _libc_fpstate* fpregs) { | ||||
|    const greg_t* regs = uc->uc_mcontext.gregs; | ||||
|   | ||||
| @@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawC | ||||
|   | ||||
|  #elif defined(__ARM_EABI__) | ||||
|   | ||||
| -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.arm_sp; | ||||
|  } | ||||
|   | ||||
| -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.arm_pc; | ||||
|  } | ||||
|   | ||||
| -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { | ||||
| +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t*uc) { | ||||
|    out->context_flags = MD_CONTEXT_ARM_FULL; | ||||
|   | ||||
|    out->iregs[0] = uc->uc_mcontext.arm_r0; | ||||
| @@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawC | ||||
|   | ||||
|  #elif defined(__aarch64__) | ||||
|   | ||||
| -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.sp; | ||||
|  } | ||||
|   | ||||
| -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.pc; | ||||
|  } | ||||
|   | ||||
| -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, | ||||
| +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t*uc, | ||||
|                                      const struct fpsimd_context* fpregs) { | ||||
|    out->context_flags = MD_CONTEXT_ARM64_FULL; | ||||
|   | ||||
| @@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawC | ||||
|   | ||||
|  #elif defined(__mips__) | ||||
|   | ||||
| -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; | ||||
|  } | ||||
|   | ||||
| -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { | ||||
| +uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { | ||||
|    return uc->uc_mcontext.pc; | ||||
|  } | ||||
|   | ||||
| -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { | ||||
| +void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t*uc) { | ||||
|  #if _MIPS_SIM == _ABI64 | ||||
|    out->context_flags = MD_CONTEXT_MIPS64_FULL; | ||||
|  #elif _MIPS_SIM == _ABIO32 | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h	2017-08-29 00:44:03.298893868 +0200 | ||||
| @@ -41,21 +41,21 @@ namespace google_breakpad { | ||||
|   | ||||
|  // Wraps platform-dependent implementations of accessors to ucontext structs. | ||||
|  struct UContextReader { | ||||
| -  static uintptr_t GetStackPointer(const struct ucontext* uc); | ||||
| +  static uintptr_t GetStackPointer(const ucontext_t* uc); | ||||
|   | ||||
| -  static uintptr_t GetInstructionPointer(const struct ucontext* uc); | ||||
| +  static uintptr_t GetInstructionPointer(const ucontext_t* uc); | ||||
|   | ||||
|    // Juggle a arch-specific ucontext into a minidump format | ||||
|    //   out: the minidump structure | ||||
|    //   info: the collection of register structures. | ||||
|  #if defined(__i386__) || defined(__x86_64) | ||||
| -  static void FillCPUContext(RawContextCPU *out, const ucontext *uc, | ||||
| +  static void FillCPUContext(RawContextCPU *out, const ucontext_t*uc, | ||||
|                               const struct _libc_fpstate* fp); | ||||
|  #elif defined(__aarch64__) | ||||
| -  static void FillCPUContext(RawContextCPU *out, const ucontext *uc, | ||||
| +  static void FillCPUContext(RawContextCPU *out, const ucontext_t*uc, | ||||
|                               const struct fpsimd_context* fpregs); | ||||
|  #else | ||||
| -  static void FillCPUContext(RawContextCPU *out, const ucontext *uc); | ||||
| +  static void FillCPUContext(RawContextCPU *out, const ucontext_t*uc); | ||||
|  #endif | ||||
|  }; | ||||
|   | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/handler/exception_handler.cc | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/handler/exception_handler.cc	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/handler/exception_handler.cc	2017-08-29 00:44:03.230893211 +0200 | ||||
| @@ -444,9 +444,9 @@ bool ExceptionHandler::HandleSignal(int | ||||
|    // Fill in all the holes in the struct to make Valgrind happy. | ||||
|    memset(&g_crash_context_, 0, sizeof(g_crash_context_)); | ||||
|    memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); | ||||
| -  memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); | ||||
| +  memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); | ||||
|  #if defined(__aarch64__) | ||||
| -  struct ucontext* uc_ptr = (struct ucontext*)uc; | ||||
| +  ucontext_t* uc_ptr = (ucontext_t*)uc; | ||||
|    struct fpsimd_context* fp_ptr = | ||||
|        (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; | ||||
|    if (fp_ptr->head.magic == FPSIMD_MAGIC) { | ||||
| @@ -455,9 +455,9 @@ bool ExceptionHandler::HandleSignal(int | ||||
|    } | ||||
|  #elif !defined(__ARM_EABI__) && !defined(__mips__) | ||||
|    // FP state is not part of user ABI on ARM Linux. | ||||
| -  // In case of MIPS Linux FP state is already part of struct ucontext | ||||
| +  // In case of MIPS Linux FP state is already part of ucontext_t | ||||
|    // and 'float_state' is not a member of CrashContext. | ||||
| -  struct ucontext* uc_ptr = (struct ucontext*)uc; | ||||
| +  ucontext_t* uc_ptr = (ucontext_t*)uc; | ||||
|    if (uc_ptr->uc_mcontext.fpregs) { | ||||
|      memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, | ||||
|             sizeof(g_crash_context_.float_state)); | ||||
| @@ -481,7 +481,7 @@ bool ExceptionHandler::SimulateSignalDel | ||||
|    // ExceptionHandler::HandleSignal(). | ||||
|    siginfo.si_code = SI_USER; | ||||
|    siginfo.si_pid = getpid(); | ||||
| -  struct ucontext context; | ||||
| +  ucontext_t context; | ||||
|    getcontext(&context); | ||||
|    return HandleSignal(sig, &siginfo, &context); | ||||
|  } | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/handler/exception_handler.h | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/handler/exception_handler.h	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/handler/exception_handler.h	2017-08-29 00:44:03.226893172 +0200 | ||||
| @@ -191,7 +191,7 @@ class ExceptionHandler { | ||||
|    struct CrashContext { | ||||
|      siginfo_t siginfo; | ||||
|      pid_t tid;  // the crashing thread. | ||||
| -    struct ucontext context; | ||||
| +    ucontext_t context; | ||||
|  #if !defined(__ARM_EABI__) && !defined(__mips__) | ||||
|      // #ifdef this out because FP state is not part of user ABI for Linux ARM. | ||||
|      // In case of MIPS Linux FP state is already part of struct | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/microdump_writer/microdump_writer.cc | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/microdump_writer/microdump_writer.cc	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/microdump_writer/microdump_writer.cc	2017-08-29 00:44:03.242893327 +0200 | ||||
| @@ -593,7 +593,7 @@ class MicrodumpWriter { | ||||
|   | ||||
|    void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } | ||||
|   | ||||
| -  const struct ucontext* const ucontext_; | ||||
| +  const ucontext_t* const ucontext_; | ||||
|  #if !defined(__ARM_EABI__) && !defined(__mips__) | ||||
|    const google_breakpad::fpstate_t* const float_state_; | ||||
|  #endif | ||||
| Index: chromium-60.0.3112.113/breakpad/src/client/linux/minidump_writer/minidump_writer.cc | ||||
| =================================================================== | ||||
| --- chromium-60.0.3112.113.orig/breakpad/src/client/linux/minidump_writer/minidump_writer.cc	2017-08-24 21:06:37.000000000 +0200 | ||||
| +++ chromium-60.0.3112.113/breakpad/src/client/linux/minidump_writer/minidump_writer.cc	2017-08-29 00:44:03.290893791 +0200 | ||||
| @@ -1323,7 +1323,7 @@ class MinidumpWriter { | ||||
|    const int fd_;  // File descriptor where the minidum should be written. | ||||
|    const char* path_;  // Path to the file where the minidum should be written. | ||||
|   | ||||
| -  const struct ucontext* const ucontext_;  // also from the signal handler | ||||
| +  const ucontext_t* const ucontext_;  // also from the signal handler | ||||
|  #if !defined(__ARM_EABI__) && !defined(__mips__) | ||||
|    const google_breakpad::fpstate_t* const float_state_;  // ditto | ||||
|  #endif | ||||
| @@ -1,3 +1,9 @@ | ||||
| ------------------------------------------------------------------- | ||||
| Mon Aug 28 22:57:05 UTC 2017 - astieger@suse.com | ||||
|  | ||||
| - fix build with Factory glibc: | ||||
|   add chromium-60.0.3112.113-breakpad-ucontext.patch | ||||
|  | ||||
| ------------------------------------------------------------------- | ||||
| Fri Aug 25 09:17:27 UTC 2017 - tchvatal@suse.com | ||||
|  | ||||
|   | ||||
| @@ -70,6 +70,7 @@ Patch11:        chromium-gcc7.patch | ||||
| Patch12:        chromium-dma-buf.patch | ||||
| Patch13:        chromium-override.patch | ||||
| Patch14:        chromium-buildname.patch | ||||
| Patch15:        chromium-60.0.3112.113-breakpad-ucontext.patch | ||||
| # archlinux arm enhancement patches | ||||
| Patch100:       arm-webrtc-fix.patch | ||||
| Patch101:       arm_use_right_compiler.patch | ||||
| @@ -260,6 +261,7 @@ WebDriver is an open source tool for automated testing of webapps across many br | ||||
| %patch12 -p1 | ||||
| %patch13 -p1 | ||||
| %patch14 -p1 | ||||
| %patch15 -p1 | ||||
|  | ||||
| # archlinux arm enhancements | ||||
| %patch100 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user