mailing list of musl libc
 help / color / mirror / code / Atom feed
1f15f4dfeb6cb44720376472af188c202eb555da blob 3341 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 
#ifndef LIBC_H
#define LIBC_H

#include <stdlib.h>
#include <stdio.h>

struct __libc {
	void *main_thread;
	int threaded;
	int secure;
	size_t *auxv;
	int (*atexit)(void (*)(void));
	void (*fini)(void);
	void (*ldso_fini)(void);
	volatile int threads_minus_1;
	int canceldisable;
	FILE *ofl_head;
	int ofl_lock[2];
	size_t tls_size;
};

extern size_t __hwcap;

#if !defined(__PIC__) || (100*__GNUC__+__GNUC_MINOR__ >= 303 && !defined(__PCC__))

#ifdef __PIC__
#if __GNUC__ < 4
#define BROKEN_VISIBILITY 1
#endif
#define ATTR_LIBC_VISIBILITY __attribute__((visibility("hidden")))
#else
#define ATTR_LIBC_VISIBILITY
#endif

extern struct __libc __libc ATTR_LIBC_VISIBILITY;
#define libc __libc

#else

#define USE_LIBC_ACCESSOR
#define ATTR_LIBC_VISIBILITY
extern struct __libc *__libc_loc(void) __attribute__((const));
#define libc (*__libc_loc())

#endif


/* Designed to avoid any overhead in non-threaded processes */
void __lock(volatile int *) ATTR_LIBC_VISIBILITY;
void __unlock(volatile int *) ATTR_LIBC_VISIBILITY;
int __lockfile(FILE *) ATTR_LIBC_VISIBILITY;
void __unlockfile(FILE *) ATTR_LIBC_VISIBILITY;
#define LOCK(x) (libc.threads_minus_1 ? (__lock(x),1) : ((void)(x),1))
#define UNLOCK(x) (libc.threads_minus_1 ? (__unlock(x),1) : ((void)(x),1))

void __synccall(void (*)(void *), void *);
int __setxid(int, int, int, int);

extern char **__environ;


/* Provide a dummy location for all readonly symbols that are
   weak. This is a fallback that should always have a value of all
   zero and suitable aligned to be able to serve as an address for any
   type. */
#define WEAK_PROVIDE_DUMMY __attribute__((__weak__, __aligned__(32))) struct { unsigned char const _arr[32]; }  __readonly_dummy

#define _Readonly_alias extern __attribute__((__weak__,__alias__("__readonly_dummy")))

#define _Weak extern __attribute__((__weak__))

#undef weak_alias
#define weak_alias(old, new) \
	extern __typeof(old) new __attribute__((weak, alias(#old)))

/* provide a weak function symbol for a function that receives no
   arguments */
#define WEAK_PROVIDE_VOID                       \
_Weak                                           \
void __weak_dummy_void(void) {                  \
  /* empty */                                   \
}                                               \
/* syntax sugar */                              \
_Weak void __weak_dummy_void(void)

/* provide a weak function symbol for a function that receives a void
   pointer argument */
#define WEAK_PROVIDE_VOIDP                      \
_Weak                                           \
void __weak_dummy_voidp(void* _ign) {           \
  /* empty */                                   \
}                                               \
/* syntax sugar */                              \
_Weak void __weak_dummy_voidp(void*)

/* provide a weak function symbol for a function that receives an int
   argument */
#define WEAK_PROVIDE_INT                        \
_Weak                                           \
void __weak_dummy_int(int _ign) {               \
  /* empty */                                   \
}                                               \
/* syntax sugar */                              \
_Weak void __weak_dummy_int(int _ign)


#undef LFS64_2
#define LFS64_2(x, y) weak_alias(x, y)

#undef LFS64
#define LFS64(x) LFS64_2(x, x##64)

#endif
debug log:

solving 1f15f4d ...
found 1f15f4d in https://inbox.vuxu.org/musl/f69aec145bafa5df1636274b0703778dfb203ef5.1360968989.git.Jens.Gustedt@inria.fr/
found a097a66 in https://inbox.vuxu.org/musl/50a7dfa0d4087c301278e0626cb0780338342dbb.1360968989.git.Jens.Gustedt@inria.fr/
found a2f36fb in https://inbox.vuxu.org/musl/cec5070e43b6a06a77908c926d8822ed58baa458.1360968989.git.Jens.Gustedt@inria.fr/
found c9416f0 in https://git.vuxu.org/mirror/musl/
preparing index
index prepared:
100644 c9416f075b417e0a85198d82819c1bb78b52017b	src/internal/libc.h

applying [1/3] https://inbox.vuxu.org/musl/cec5070e43b6a06a77908c926d8822ed58baa458.1360968989.git.Jens.Gustedt@inria.fr/
diff --git a/src/internal/libc.h b/src/internal/libc.h
index c9416f0..a2f36fb 100644


applying [2/3] https://inbox.vuxu.org/musl/50a7dfa0d4087c301278e0626cb0780338342dbb.1360968989.git.Jens.Gustedt@inria.fr/
diff --git a/src/internal/libc.h b/src/internal/libc.h
index a2f36fb..a097a66 100644


applying [3/3] https://inbox.vuxu.org/musl/f69aec145bafa5df1636274b0703778dfb203ef5.1360968989.git.Jens.Gustedt@inria.fr/
diff --git a/src/internal/libc.h b/src/internal/libc.h
index a097a66..1f15f4d 100644

Checking patch src/internal/libc.h...
Applied patch src/internal/libc.h cleanly.
Checking patch src/internal/libc.h...
Applied patch src/internal/libc.h cleanly.
Checking patch src/internal/libc.h...
Applied patch src/internal/libc.h cleanly.

index at:
100644 1f15f4dfeb6cb44720376472af188c202eb555da	src/internal/libc.h

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).