From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/1825 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: C11 api coverage Date: Wed, 5 Sep 2012 08:40:10 +0200 Message-ID: <20120905064010.GY1104@port70.net> References: <20120904203837.GX1104@port70.net> <20120905062208.GR27715@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="WK3l2KTTmXPVedZ6" X-Trace: ger.gmane.org 1346827230 22733 80.91.229.3 (5 Sep 2012 06:40:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 5 Sep 2012 06:40:30 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-1826-gllmg-musl=m.gmane.org@lists.openwall.com Wed Sep 05 08:40:32 2012 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1T99Hl-0000xY-FM for gllmg-musl@plane.gmane.org; Wed, 05 Sep 2012 08:40:25 +0200 Original-Received: (qmail 16339 invoked by uid 550); 5 Sep 2012 06:40:22 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 16330 invoked from network); 5 Sep 2012 06:40:22 -0000 Content-Disposition: inline In-Reply-To: <20120905062208.GR27715@brightrain.aerifal.cx> User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:1825 Archived-At: --WK3l2KTTmXPVedZ6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline * Rich Felker [2012-09-05 02:22:08 -0400]: > On Tue, Sep 04, 2012 at 10:38:37PM +0200, Szabolcs Nagy wrote: > > based on annex B (library summary) i created a diff > > between the symbols of c99 and c11 to help the c11 > > As I mentioned on IRC, the attached list includes symbols from Annex > K, Redmond Troll Interfaces. At this time I'm really not interested in > including/supporting them, and even if there did turn out to be a need ok i removed annex k symbols (and updated the c11 coverage table) --WK3l2KTTmXPVedZ6 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="c11.diff" +static_assert assert.h +CMPLX double complex CMPLX(double x, double y); complex.h +CMPLXF float complex CMPLXF(float x, float y); complex.h +CMPLXL long double complex CMPLXL(long double x, long double y); complex.h +DBL_DECIMAL_DIG float.h +DBL_HAS_SUBNORM float.h +DBL_TRUE_MIN float.h +FLT_DECIMAL_DIG float.h +FLT_HAS_SUBNORM float.h +FLT_TRUE_MIN float.h +LDBL_DECIMAL_DIG float.h +LDBL_HAS_SUBNORM float.h +LDBL_TRUE_MIN float.h -longjmp void longjmp(jmp_buf env, int val); setjmp.h +longjmp _Noreturn void longjmp(jmp_buf env, int val); setjmp.h +__alignas_is_defined stdalign.h +alignas stdalign.h +ATOMIC_BOOL_LOCK_FREE stdatomic.h +ATOMIC_CHAR16_T_LOCK_FREE stdatomic.h +ATOMIC_CHAR32_T_LOCK_FREE stdatomic.h +ATOMIC_CHAR_LOCK_FREE stdatomic.h +ATOMIC_FLAG_INIT stdatomic.h +ATOMIC_INT_LOCK_FREE stdatomic.h +ATOMIC_LLONG_LOCK_FREE stdatomic.h +ATOMIC_LONG_LOCK_FREE stdatomic.h +ATOMIC_POINTER_LOCK_FREE stdatomic.h +ATOMIC_SHORT_LOCK_FREE stdatomic.h +ATOMIC_VAR_INIT ATOMIC_VAR_INIT(C value) stdatomic.h +ATOMIC_WCHAR_T_LOCK_FREE stdatomic.h +atomic_bool stdatomic.h +atomic_char stdatomic.h +atomic_char16_t stdatomic.h +atomic_char32_t stdatomic.h +atomic_compare_exchange_strong _Bool atomic_compare_exchange_strong(volatile A *object, C *expected, C desired); stdatomic.h +atomic_compare_exchange_strong_explicit _Bool atomic_compare_exchange_strong_explicit(volatile A *object, C *expected, C desired, memory_order success, memory_order failure); stdatomic.h +atomic_compare_exchange_weak _Bool atomic_compare_exchange_weak(volatile A *object, C *expected, C desired); stdatomic.h +atomic_compare_exchange_weak_explicit _Bool atomic_compare_exchange_weak_explicit(volatile A *object, C *expected, C desired, memory_order success, memory_order failure); stdatomic.h +atomic_exchange C atomic_exchange(volatile A *object, C desired); stdatomic.h +atomic_exchange_explicit C atomic_exchange_explicit(volatile A *object, C desired, memory_order order); stdatomic.h +atomic_fetch_key C atomic_fetch_key(volatile A *object, M operand); stdatomic.h +atomic_fetch_key_explicit C atomic_fetch_key_explicit(volatile A *object, M operand, memory_order order); stdatomic.h +atomic_flag stdatomic.h +atomic_flag_clear void atomic_flag_clear(volatile atomic_flag *object); stdatomic.h +atomic_flag_clear_explicit void atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order); stdatomic.h +atomic_flag_test_and_set _Bool atomic_flag_test_and_set(volatile atomic_flag *object); stdatomic.h +atomic_flag_test_and_set_explicit _Bool atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order); stdatomic.h +atomic_init void atomic_init(volatile A *obj, C value); stdatomic.h +atomic_int stdatomic.h +atomic_int_fast16_t stdatomic.h +atomic_int_fast32_t stdatomic.h +atomic_int_fast64_t stdatomic.h +atomic_int_fast8_t stdatomic.h +atomic_int_least16_t stdatomic.h +atomic_int_least32_t stdatomic.h +atomic_int_least64_t stdatomic.h +atomic_int_least8_t stdatomic.h +atomic_intmax_t stdatomic.h +atomic_intptr_t stdatomic.h +atomic_is_lock_free _Bool atomic_is_lock_free(const volatile A *obj); stdatomic.h +atomic_llong stdatomic.h +atomic_load C atomic_load(volatile A *object); stdatomic.h +atomic_load_explicit C atomic_load_explicit(volatile A *object, memory_order order); stdatomic.h +atomic_long stdatomic.h +atomic_ptrdiff_t stdatomic.h +atomic_schar stdatomic.h +atomic_short stdatomic.h +atomic_signal_fence void atomic_signal_fence(memory_order order); stdatomic.h +atomic_size_t stdatomic.h +atomic_store void atomic_store(volatile A *object, C desired); stdatomic.h +atomic_store_explicit void atomic_store_explicit(volatile A *object, C desired, memory_order order); stdatomic.h +atomic_thread_fence void atomic_thread_fence(memory_order order); stdatomic.h +atomic_uchar stdatomic.h +atomic_uint stdatomic.h +atomic_uint_fast16_t stdatomic.h +atomic_uint_fast32_t stdatomic.h +atomic_uint_fast64_t stdatomic.h +atomic_uint_fast8_t stdatomic.h +atomic_uint_least16_t stdatomic.h +atomic_uint_least32_t stdatomic.h +atomic_uint_least64_t stdatomic.h +atomic_uint_least8_t stdatomic.h +atomic_uintmax_t stdatomic.h +atomic_uintptr_t stdatomic.h +atomic_ullong stdatomic.h +atomic_ulong stdatomic.h +atomic_ushort stdatomic.h +atomic_wchar_t stdatomic.h +kill_dependency type kill_dependency(type y); stdatomic.h +memory_order stdatomic.h +memory_order_acq_rel stdatomic.h +memory_order_acquire stdatomic.h +memory_order_consume stdatomic.h +memory_order_relaxed stdatomic.h +memory_order_release stdatomic.h +memory_order_seq_cst stdatomic.h +max_align_t stddef.h -gets char *gets(char *s); stdio.h -_Exit void _Exit(int status); stdlib.h -abort void abort(void); stdlib.h +_Exit _Noreturn void _Exit(int status); stdlib.h +abort _Noreturn void abort(void); stdlib.h +aligned_alloc void *aligned_alloc(size_t alignment, size_t size); stdlib.h +at_quick_exit int at_quick_exit(void (*func)(void)); stdlib.h -exit void exit(int status); stdlib.h +exit _Noreturn void exit(int status); stdlib.h +quick_exit _Noreturn void quick_exit(int status); stdlib.h +noreturn stdnoreturn.h +ONCE_FLAG_INIT threads.h +TSS_DTOR_ITERATIONS threads.h +call_once void call_once(once_flag *flag, void (*func)(void)); threads.h +cnd_broadcast int cnd_broadcast(cnd_t *cond); threads.h +cnd_destroy void cnd_destroy(cnd_t *cond); threads.h +cnd_init int cnd_init(cnd_t *cond); threads.h +cnd_signal int cnd_signal(cnd_t *cond); threads.h +cnd_t threads.h +cnd_timedwait int cnd_timedwait(cnd_t *restrict cond, mtx_t *restrict mtx, const struct timespec *restrict ts); threads.h +cnd_wait int cnd_wait(cnd_t *cond, mtx_t *mtx); threads.h +mtx_destroy void mtx_destroy(mtx_t *mtx); threads.h +mtx_init int mtx_init(mtx_t *mtx, int type); threads.h +mtx_lock int mtx_lock(mtx_t *mtx); threads.h +mtx_plain threads.h +mtx_recursive threads.h +mtx_t threads.h +mtx_timed threads.h +mtx_timedlock int mtx_timedlock(mtx_t *restrict mtx, const struct timespec *restrict ts); threads.h +mtx_trylock int mtx_trylock(mtx_t *mtx); threads.h +mtx_unlock int mtx_unlock(mtx_t *mtx); threads.h +once_flag threads.h +thrd_busy threads.h +thrd_create int thrd_create(thrd_t *thr, thrd_start_t func, void *arg); threads.h +thrd_current thrd_t thrd_current(void); threads.h +thrd_detach int thrd_detach(thrd_t thr); threads.h +thrd_equal int thrd_equal(thrd_t thr0, thrd_t thr1); threads.h +thrd_error threads.h +thrd_exit _Noreturn void thrd_exit(int res); threads.h +thrd_join int thrd_join(thrd_t thr, int *res); threads.h +thrd_nomem threads.h +thrd_sleep int thrd_sleep(const struct timespec *duration, struct timespec *remaining); threads.h +thrd_start_t threads.h +thrd_success threads.h +thrd_t threads.h +thrd_timedout threads.h +thrd_yield void thrd_yield(void); threads.h +thread_local threads.h +tss_create int tss_create(tss_t *key, tss_dtor_t dtor); threads.h +tss_delete void tss_delete(tss_t key); threads.h +tss_dtor_t threads.h +tss_get void *tss_get(tss_t key); threads.h +tss_set int tss_set(tss_t key, void *val); threads.h +tss_t threads.h +TIME_UTC time.h +struct timespec time.h +timespec_get int timespec_get(timespec *ts, int base); time.h +c16rtomb size_t c16rtomb(char * restrict s, char16_t c16, mbstate_t * restrict ps); uchar.h +c32rtomb size_t c32rtomb(char * restrict s, char32_t c32, mbstate_t * restrict ps); uchar.h +char16_t uchar.h +char32_t uchar.h +mbrtoc16 size_t mbrtoc16(char16_t * restrict pc16, const char * restrict s, size_t n, mbstate_t * restrict ps); uchar.h +mbrtoc32 size_t mbrtoc32(char32_t * restrict pc32, const char * restrict s, size_t n, mbstate_t * restrict ps); uchar.h +mbstate_t uchar.h +size_t uchar.h --WK3l2KTTmXPVedZ6--