Merge "Fix x86 dynamic linker build."
This commit is contained in:
commit
4b58214205
2 changed files with 6 additions and 5 deletions
|
@ -26,14 +26,15 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern unsigned __linker_init(unsigned int *elfdata);
|
||||
|
||||
__attribute__((visibility("hidden")))
|
||||
void _start() {
|
||||
void *elfdata;
|
||||
void (*start)(void);
|
||||
|
||||
elfdata = __builtin_frame_address(0) + sizeof(void *);
|
||||
void* elfdata = (void*) ((uintptr_t) __builtin_frame_address(0) + sizeof(void*));
|
||||
start = (void(*)(void))__linker_init(elfdata);
|
||||
|
||||
/* linker init returns (%eax) the _entry address in the main image */
|
||||
|
|
|
@ -371,14 +371,14 @@ format_number(char *buffer, size_t bufsize, uint64_t value, int base, const char
|
|||
while (value) {
|
||||
unsigned d = value % base;
|
||||
value /= base;
|
||||
if (pos < end) {
|
||||
if (pos != end) {
|
||||
*pos++ = digits[d];
|
||||
}
|
||||
}
|
||||
|
||||
/* special case for 0 */
|
||||
if (pos == buffer) {
|
||||
if (pos < end) {
|
||||
if (pos != end) {
|
||||
*pos++ = '0';
|
||||
}
|
||||
}
|
||||
|
@ -387,7 +387,7 @@ format_number(char *buffer, size_t bufsize, uint64_t value, int base, const char
|
|||
/* now reverse digit string in-place */
|
||||
end = pos - 1;
|
||||
pos = buffer;
|
||||
while (pos < end) {
|
||||
while (pos != end) {
|
||||
int ch = pos[0];
|
||||
pos[0] = end[0];
|
||||
end[0] = (char) ch;
|
||||
|
|
Loading…
Reference in a new issue