Revert "Update X86 Bionic CRT files for unwind/exceptions"
This reverts commit dc3bc87b43d0d73d89cca59692b80de878e11a5d,
causes netd to crash.
diff --git a/libc/arch-x86/bionic/crtbegin_dynamic.S b/libc/arch-x86/bionic/crtbegin_dynamic.S
index 279269b..0a7bc62 100644
--- a/libc/arch-x86/bionic/crtbegin_dynamic.S
+++ b/libc/arch-x86/bionic/crtbegin_dynamic.S
@@ -76,59 +76,10 @@
.globl __INIT_ARRAY__
__INIT_ARRAY__:
.long -1
- .long frame_dummy
.section .fini_array, "aw"
.globl __FINI_ARRAY__
__FINI_ARRAY__:
.long -1
- .long __do_global_dtors_aux
- .section .eh_frame,"a",@progbits
- .align 4
- .type __EH_FRAME_BEGIN__, @object
-__EH_FRAME_BEGIN__:
- .text
- .p2align 4,,15
- .type __do_global_dtors_aux, @function
-__do_global_dtors_aux:
- pushl %ebp
- movl %esp, %ebp
- subl $24, %esp
- cmpb $0, completed.4454
- jne .L4
- movl $__deregister_frame_info_bases, %eax
- testl %eax, %eax
- je .L3
- movl $__EH_FRAME_BEGIN__, (%esp)
- call __deregister_frame_info_bases
-.L3:
- movb $1, completed.4454
-.L4:
- leave
- ret
- .text
- .p2align 4,,15
- .type frame_dummy, @function
-frame_dummy:
- pushl %ebp
- movl $__register_frame_info_bases, %eax
- movl %esp, %ebp
- subl $24, %esp
- testl %eax, %eax
- je .L7
- movl %ebx, 12(%esp)
- movl $0, 8(%esp)
- movl $object.4466, 4(%esp)
- movl $__EH_FRAME_BEGIN__, (%esp)
- call __register_frame_info_bases
-.L7:
- leave
- ret
- .local completed.4454
- .comm completed.4454,1,1
- .local object.4466
- .comm object.4466,24,4
- .weak __register_frame_info_bases
- .weak __deregister_frame_info_bases
#include "__dso_handle.S"
diff --git a/libc/arch-x86/bionic/crtbegin_so.S b/libc/arch-x86/bionic/crtbegin_so.S
index a789ba0..b3a01b5 100644
--- a/libc/arch-x86/bionic/crtbegin_so.S
+++ b/libc/arch-x86/bionic/crtbegin_so.S
@@ -1,10 +1,16 @@
+# This function is to be called when the shared library
+# is unloaded through dlclose()
+_on_dlclose:
+ lea __dso_handle, %eax
+ call __cxa_finalize
+ ret
+
.section .init_array, "aw"
.align 4
.type __INIT_ARRAY__, @object
.globl __INIT_ARRAY__
__INIT_ARRAY__:
.long -1
- .long frame_dummy
.section .fini_array, "aw"
.align 4
@@ -12,86 +18,6 @@
.globl __FINI_ARRAY__
__FINI_ARRAY__:
.long -1
- .long __do_global_dtors_aux
-
- .section .eh_frame,"a",@progbits
- .align 4
- .type __EH_FRAME_BEGIN__, @object
-__EH_FRAME_BEGIN__:
- .text
- .p2align 4,,15
- .type __do_global_dtors_aux, @function
-__do_global_dtors_aux:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- call __x86.get_pc_thunk.bx
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
- subl $20, %esp
- cmpb $0, completed.4454@GOTOFF(%ebx)
- jne .L5
- movl __dso_handle@GOTOFF(%ebx), %eax
- movl %eax, (%esp)
- call __cxa_finalize@PLT
- movl __deregister_frame_info_bases@GOT(%ebx), %eax
- testl %eax, %eax
- je .L4
- leal __EH_FRAME_BEGIN__@GOTOFF(%ebx), %eax
- movl %eax, (%esp)
- call __deregister_frame_info_bases@PLT
-.L4:
- movb $1, completed.4454@GOTOFF(%ebx)
-.L5:
- addl $20, %esp
- popl %ebx
- popl %ebp
- ret
- .text
- .p2align 4,,15
- .type frame_dummy, @function
-frame_dummy:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- call __x86.get_pc_thunk.bx
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
- subl $20, %esp
- movl __register_frame_info_bases@GOT(%ebx), %eax
- testl %eax, %eax
- je .L8
- leal object.4469@GOTOFF(%ebx), %eax
- movl %eax, 4(%esp)
- leal __EH_FRAME_BEGIN__@GOTOFF(%ebx), %eax
- movl %ebx, 12(%esp)
- movl $0, 8(%esp)
- movl %eax, (%esp)
- call __register_frame_info_bases@PLT
-.L8:
- addl $20, %esp
- popl %ebx
- popl %ebp
- ret
- .local completed.4454
- .comm completed.4454,1,1
- .local object.4469
- .comm object.4469,24,4
- .weak __register_frame_info_bases
- .weak __deregister_frame_info_bases
-
- .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
- .globl __x86.get_pc_thunk.bx
- .hidden __x86.get_pc_thunk.bx
- .type __x86.get_pc_thunk.bx, @function
-__x86.get_pc_thunk.bx:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- movl (%esp), %ebx
- ret
+ .long _on_dlclose
#include "__dso_handle.S"
diff --git a/libc/arch-x86/bionic/crtbegin_static.S b/libc/arch-x86/bionic/crtbegin_static.S
index 6006d8f..d5c2430 100644
--- a/libc/arch-x86/bionic/crtbegin_static.S
+++ b/libc/arch-x86/bionic/crtbegin_static.S
@@ -75,59 +75,10 @@
.globl __INIT_ARRAY__
__INIT_ARRAY__:
.long -1
- .long frame_dummy
.section .fini_array, "aw"
.globl __FINI_ARRAY__
__FINI_ARRAY__:
.long -1
- .long __do_global_dtors_aux
- .section .eh_frame,"a",@progbits
- .align 4
- .type __EH_FRAME_BEGIN__, @object
-__EH_FRAME_BEGIN__:
- .text
- .p2align 4,,15
- .type __do_global_dtors_aux, @function
-__do_global_dtors_aux:
- pushl %ebp
- movl %esp, %ebp
- subl $24, %esp
- cmpb $0, completed.4454
- jne .L4
- movl $__deregister_frame_info_bases, %eax
- testl %eax, %eax
- je .L3
- movl $__EH_FRAME_BEGIN__, (%esp)
- call __deregister_frame_info_bases
-.L3:
- movb $1, completed.4454
-.L4:
- leave
- ret
- .text
- .p2align 4,,15
- .type frame_dummy, @function
-frame_dummy:
- pushl %ebp
- movl $__register_frame_info_bases, %eax
- movl %esp, %ebp
- subl $24, %esp
- testl %eax, %eax
- je .L7
- movl %ebx, 12(%esp)
- movl $0, 8(%esp)
- movl $object.4466, 4(%esp)
- movl $__EH_FRAME_BEGIN__, (%esp)
- call __register_frame_info_bases
-.L7:
- leave
- ret
- .local completed.4454
- .comm completed.4454,1,1
- .local object.4466
- .comm object.4466,24,4
- .weak __register_frame_info_bases
- .weak __deregister_frame_info_bases
#include "__dso_handle.S"
diff --git a/libc/arch-x86/bionic/crtend.S b/libc/arch-x86/bionic/crtend.S
index 68447e7..884ba8b 100644
--- a/libc/arch-x86/bionic/crtend.S
+++ b/libc/arch-x86/bionic/crtend.S
@@ -6,10 +6,3 @@
.section .fini_array, "aw"
.long 0
-
- .section .eh_frame,"a",@progbits
- .align 4
- .type __FRAME_END__, @object
- .size __FRAME_END__, 4
-__FRAME_END__:
- .zero 4
diff --git a/libc/arch-x86/bionic/crtend_so.S b/libc/arch-x86/bionic/crtend_so.S
index 63e58b9..8c9d419 100644
--- a/libc/arch-x86/bionic/crtend_so.S
+++ b/libc/arch-x86/bionic/crtend_so.S
@@ -1,12 +1,6 @@
+
.section .init_array, "aw"
.long 0
.section .fini_array, "aw"
.long 0
-
- .section .eh_frame,"a",@progbits
- .align 4
- .type __FRAME_END__, @object
- .size __FRAME_END__, 4
-__FRAME_END__:
- .zero 4