Changeset 2eadda9 in mainline for uspace/lib/c/generic/libc.c
- Timestamp:
- 2018-07-11T17:45:30Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 99d3123
- Parents:
- c2c4127
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-11 17:08:12)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-11 17:45:30)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/libc.c
rc2c4127 r2eadda9 61 61 #endif 62 62 63 progsymbols_t __progsymbols; 64 63 65 static bool env_setup = false; 64 66 … … 116 118 * C++ Static constructor calls. 117 119 */ 118 ptrdiff_t init_array_entries = (__init_array_end - __init_array_start);119 120 120 for (int i = init_array_entries - 1; i >= 0; --i) 121 __init_array_start[i](); 121 if (__progsymbols.preinit_array) { 122 for (int i = __progsymbols.preinit_array_len - 1; i >= 0; --i) 123 __progsymbols.preinit_array[i](); 124 } 125 126 if (__progsymbols.init_array) { 127 for (int i = __progsymbols.init_array_len - 1; i >= 0; --i) 128 __progsymbols.init_array[i](); 129 } 122 130 123 131 /* … … 125 133 * according the result 126 134 */ 127 int retval = main(argc, argv);135 int retval = __progsymbols.main(argc, argv); 128 136 exit(retval); 129 137 } … … 136 144 * when the respective constructor is called. 137 145 */ 138 ptrdiff_t fini_array_entries = (__fini_array_end - __fini_array_start);139 146 140 for (int i = 0; i < fini_array_entries; ++i)141 __ fini_array_start[i]();147 for (int i = 0; i < __progsymbols.fini_array_len; ++i) 148 __progsymbols.fini_array[i](); 142 149 143 150 if (env_setup) { … … 148 155 149 156 __SYSCALL1(SYS_TASK_EXIT, false); 150 151 /* Unreachable */ 152 while (true) 153 ; 157 __builtin_unreachable(); 154 158 } 155 159 … … 157 161 { 158 162 __SYSCALL1(SYS_TASK_EXIT, true); 159 160 /* Unreachable */ 161 while (true) 162 ; 163 __builtin_unreachable(); 163 164 } 164 165
Note:
See TracChangeset
for help on using the changeset viewer.