kovdan01 wrote:
@MaskRay Regarding your comment
https://github.com/llvm/llvm-project/pull/113148#discussion_r1866992275:
> We should add a subclass of MachineModuleInfoELF similar to
> `AMDGPUMachineModuleInfo`, then move `HasSignedpersonality` there. Here you
> can use a static_cast.
Maybe
https://github.com/kovdan01 ready_for_review
https://github.com/llvm/llvm-project/pull/119361
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/119331
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 ready_for_review
https://github.com/llvm/llvm-project/pull/119331
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 created
https://github.com/llvm/llvm-project/pull/119361
Re-apply #113148 after revert in #119331
If function pointer signing is enabled, sign personality function pointer
stored in `.DW.ref.__gxx_personality_v0` section with IA key, 0x7EAD =
`ptrauth_string_discri
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/119361
>From 944b2f8fb6357c5ef9efbdaf0c2c3dcd8cb9f890 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Tue, 10 Dec 2024 08:48:09 +0300
Subject: [PATCH 1/2] [PAC][ELF][AArch64] Support signed personality function
p
https://github.com/kovdan01 closed
https://github.com/llvm/llvm-project/pull/119361
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/113150
>From 8384b1df4f7bbf454580b7486988e1808df9825d Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Mon, 21 Oct 2024 10:58:04 +0300
Subject: [PATCH] [PAC][clang] Add new features to pauthtest ABI
Enable init/fi
https://github.com/kovdan01 updated
https://github.com/llvm/llvm-project/pull/113150
>From 838b0d0ed5592b2a74560373252f17b49ae64ee7 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev
Date: Mon, 21 Oct 2024 10:58:04 +0300
Subject: [PATCH] [PAC][clang] Add new features to pauthtest ABI
Enable init/fi
kovdan01 wrote:
> Any other feedback on this patch?
>
> For those who haven't followed the RFC, the RFC received positive reviews,
> and we have reached a consensus to move forward with the proposal.
> https://discourse.llvm.org/t/rfc-ptrauth-qualifier/80710/31
@ahatanak I personally have no
@@ -1845,10 +1871,53 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
uint64_t getSP() const { return _registers.__sp; }
void setSP(uint64_t value) { _registers.__sp = value; }
- uint64_t getIP() const { return _registers.__pc; }
- void setIP(uint
@@ -541,7 +554,33 @@ struct scan_results
};
} // unnamed namespace
+}
+namespace {
+// The logical model for casting authenticated function pointers makes
+// it impossible to directly cast them without breaking the authentication,
+// as a result we need this pair of helpe
@@ -207,7 +211,8 @@ bool DwarfInstructions::isReturnAddressSignedWithPC(A
&addressSpace,
#endif
template
-int DwarfInstructions::stepWithDwarf(A &addressSpace, pint_t pc,
+int DwarfInstructions::stepWithDwarf(A &addressSpace,
+ typen
@@ -207,7 +211,8 @@ bool DwarfInstructions::isReturnAddressSignedWithPC(A
&addressSpace,
#endif
template
-int DwarfInstructions::stepWithDwarf(A &addressSpace, pint_t pc,
+int DwarfInstructions::stepWithDwarf(A &addressSpace,
kovdan01 wrote:
In this functio
@@ -83,7 +83,13 @@ __llvm_profile_iterate_data(const __llvm_profile_data *Data)
{
/* This method is only used in value profiler mock testing. */
COMPILER_RT_VISIBILITY void *
__llvm_get_function_addr(const __llvm_profile_data *Data) {
- return Data->FunctionPointer;
+ void
@@ -1877,6 +1946,32 @@ inline Registers_arm64::Registers_arm64(const void
*registers) {
memcpy(_vectorHalfRegisters,
static_cast(registers) + sizeof(GPRs),
sizeof(_vectorHalfRegisters));
+#if __has_feature(ptrauth_calls)
+ uint64_t pcRegister = 0;
+ memcp
@@ -1845,10 +1871,53 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
uint64_t getSP() const { return _registers.__sp; }
void setSP(uint64_t value) { _registers.__sp = value; }
- uint64_t getIP() const { return _registers.__pc; }
- void setIP(uint
https://github.com/kovdan01 edited
https://github.com/llvm/llvm-project/pull/143230
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -83,7 +83,13 @@ __llvm_profile_iterate_data(const __llvm_profile_data *Data)
{
/* This method is only used in value profiler mock testing. */
COMPILER_RT_VISIBILITY void *
__llvm_get_function_addr(const __llvm_profile_data *Data) {
- return Data->FunctionPointer;
+ void
@@ -93,6 +98,13 @@ class _LIBUNWIND_HIDDEN Registers_x86 {
uint32_t getEDI() const { return _registers.__edi; }
void setEDI(uint32_t value) { _registers.__edi = value; }
+ typedef uint32_t reg_t;
+ typedef uint32_t link_reg_t;
+ void loadAndAuthenticateLin
@@ -83,7 +83,13 @@ __llvm_profile_iterate_data(const __llvm_profile_data *Data)
{
/* This method is only used in value profiler mock testing. */
COMPILER_RT_VISIBILITY void *
__llvm_get_function_addr(const __llvm_profile_data *Data) {
- return Data->FunctionPointer;
+ void
@@ -83,7 +83,13 @@ __llvm_profile_iterate_data(const __llvm_profile_data *Data)
{
/* This method is only used in value profiler mock testing. */
COMPILER_RT_VISIBILITY void *
__llvm_get_function_addr(const __llvm_profile_data *Data) {
- return Data->FunctionPointer;
+ void
@@ -1877,6 +1946,32 @@ inline Registers_arm64::Registers_arm64(const void
*registers) {
memcpy(_vectorHalfRegisters,
static_cast(registers) + sizeof(GPRs),
sizeof(_vectorHalfRegisters));
+#if __has_feature(ptrauth_calls)
kovdan01 wrote:
It
@@ -1877,6 +1946,32 @@ inline Registers_arm64::Registers_arm64(const void
*registers) {
memcpy(_vectorHalfRegisters,
static_cast(registers) + sizeof(GPRs),
sizeof(_vectorHalfRegisters));
+#if __has_feature(ptrauth_calls)
+ uint64_t pcRegister = 0;
+ memcp
@@ -1845,10 +1871,53 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
uint64_t getSP() const { return _registers.__sp; }
void setSP(uint64_t value) { _registers.__sp = value; }
- uint64_t getIP() const { return _registers.__pc; }
- void setIP(uint
@@ -1845,10 +1871,53 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
uint64_t getSP() const { return _registers.__sp; }
void setSP(uint64_t value) { _registers.__sp = value; }
- uint64_t getIP() const { return _registers.__pc; }
- void setIP(uint
@@ -1845,10 +1871,53 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
uint64_t getSP() const { return _registers.__sp; }
void setSP(uint64_t value) { _registers.__sp = value; }
- uint64_t getIP() const { return _registers.__pc; }
- void setIP(uint
@@ -126,6 +130,36 @@ _LIBUNWIND_HIDDEN int __unw_set_reg(unw_cursor_t *cursor,
unw_regnum_t regNum,
// First, get the FDE for the old location and then update it.
co->getInfo(&info);
co->setInfoBasedOnIPRegister(false);
+
+#if __has_feature(ptrauth_calls)
+
kovdan01 wrote:
> Driver options need to have some stability guarantee, while CC1 options can
> be more freely changed. So I'd be concerned if we commit to certain forms of
> driver options with known ergonomics issues. The Clang driver options should
> come last in the patch stack, with other
@@ -109,4 +110,38 @@
# define _LIBCXXABI_NOEXCEPT noexcept
#endif
+#if __has_include()
+# include
+#endif
+
+#if defined(__APPLE__) && __has_feature(ptrauth_qualifier)
kovdan01 wrote:
It looks like that `__has_feature(ptrauth_qualifier)` should be replaced
kovdan01 wrote:
@MaskRay Could you please give a feedback (considering my latest comment above)?
https://github.com/llvm/llvm-project/pull/113150
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cf
401 - 431 of 431 matches
Mail list logo