diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-01-07 13:07:27 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-01-07 13:07:27 +0000 |
commit | 8af2cc9f404037fc70d217d328172e2f24f441eb (patch) | |
tree | ff3485d50708b2ecddcbeae8a2d8280f4999af6d /usr/src/lib/libc | |
parent | 6fb307ce14869b1c3684d0948a7844194c69b5bd (diff) | |
parent | 9890ff8357a674572254e0be06b175a1e8eab4b0 (diff) | |
download | illumos-joyent-8af2cc9f404037fc70d217d328172e2f24f441eb.tar.gz |
[illumos-gate merge]
commit 9890ff8357a674572254e0be06b175a1e8eab4b0
10028 loader: implement framebuffer console
10029 common/font: create shared font.c
10030 import pnglite into usr/src/common/pnglite
8918 loader.efi: add vesa edid support
10031 loader: import tem for loader console
10032 loader: implement tem utf-8 support
10033 ficl: add simple gfx words
10034 loader: use term-drawrect for menu frame
10035 loader: add alpha blending for gfx_fb
10036 ficl: add fb-putimage
10037 loader: add illumos.png logo
10038 loader: replace gop and vesa with framebuffer
10039 loader: build rules for new font setup
10040 loader: gfx use GOP Blt() function in visual_io callbacks
commit f33b666290305a2b2c134d23cbd1e70e06bf36fd
7796 uts: ldterm default to utf-8
commit adc2b73db62a4506a57dfd1ce89bcadc4a60a29d
7784 uts: console input should support Unicode
commit 1f5207b7604fb44407eb4342aff613f7c4508508
10063 basic support for smatch
10153 checkpaths shouldn't check packaging exceptions
commit c0455f334914631f42eb41177d677e2820ee6506
9478 etdump: Add the etdump utility for dumping El Torito boot catalog information.
commit c62757b2b8b6c26589d7704d0ff20beb107fcd9a
10154 zfs: cast between incompatible function types
commit 781f142d2ae880bb893875d2a114552171a5c3e5
10064 loader: zfs reader should not probe partitionless disks
commit 8a06b3d6467c15646e663c05086378f16288af85
10155 ip: cast between incompatible function types
commit c5749750a3e052f1194f65a303456224c51dea63
10157 sgs/libld: cast between incompatible function types
commit 5e90af26eb6ed2206c2a5f5131a1f3c377d6e8c4
10158 sgs/rtld: cast between incompatible function types
commit adc04c2d55dd20cc6a0622f1147c0b084cdc3099
10159 libc: cast between incompatible function types
commit 9419bc2fc61b54b25a4e45211d31fcb920ff67cc
10162 Sun/Solaris/Kstat: cast between incompatible function types
Conflicts:
usr/src/tools/env/illumos.sh
Diffstat (limited to 'usr/src/lib/libc')
-rw-r--r-- | usr/src/lib/libc/amd64/Makefile | 5 | ||||
-rw-r--r-- | usr/src/lib/libc/i386/Makefile | 5 | ||||
-rw-r--r-- | usr/src/lib/libc/i386/Makefile.com | 7 | ||||
-rw-r--r-- | usr/src/lib/libc/inc/libc_int.h | 2 | ||||
-rw-r--r-- | usr/src/lib/libc/port/gen/ssignal.c | 23 | ||||
-rw-r--r-- | usr/src/lib/libc/port/threads/c11_thr.c | 3 | ||||
-rw-r--r-- | usr/src/lib/libc/port/threads/pthread.c | 10 | ||||
-rw-r--r-- | usr/src/lib/libc/port/threads/tls.c | 14 |
8 files changed, 41 insertions, 28 deletions
diff --git a/usr/src/lib/libc/amd64/Makefile b/usr/src/lib/libc/amd64/Makefile index f5c4224338..2e5b58e349 100644 --- a/usr/src/lib/libc/amd64/Makefile +++ b/usr/src/lib/libc/amd64/Makefile @@ -24,7 +24,7 @@ # Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. # Copyright 2013 Garrett D'Amore <garrett@damore.org> # Copyright 2018 Nexenta Systems, Inc. -# Copyright 2018 Joyent, Inc. +# Copyright (c) 2019, Joyent, Inc. # LIBCBASE= . @@ -1036,6 +1036,9 @@ CERRWARN += -_gcc=-Wno-clobbered CERRWARN += -_gcc=-Wno-unused-function CERRWARN += -_gcc=-Wno-address +# not linted +SMATCH=off + # Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...) # enables ASSERT() checking in the threads portion of the library. # This is automatically enabled for DEBUG builds, not for non-debug builds. diff --git a/usr/src/lib/libc/i386/Makefile b/usr/src/lib/libc/i386/Makefile index 00376a40a1..178a2c216f 100644 --- a/usr/src/lib/libc/i386/Makefile +++ b/usr/src/lib/libc/i386/Makefile @@ -22,10 +22,7 @@ # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -# ident "%Z%%M% %I% %E% SMI" -# -# lib/libc/i386/Makefile -# +# Copyright (c) 2019, Joyent, Inc. LIBCBASE=../i386 diff --git a/usr/src/lib/libc/i386/Makefile.com b/usr/src/lib/libc/i386/Makefile.com index e9343c2f15..69f45567b2 100644 --- a/usr/src/lib/libc/i386/Makefile.com +++ b/usr/src/lib/libc/i386/Makefile.com @@ -21,10 +21,10 @@ # # Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright 2019 Joyent, Inc. # Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. # Copyright 2013 Garrett D'Amore <garrett@damore.org> # Copyright 2018 Nexenta Systems, Inc. -# Copyright 2018 Joyent, Inc. # LIBCDIR= $(SRC)/lib/libc @@ -1085,6 +1085,9 @@ CERRWARN += -_gcc=-Wno-clobbered CERRWARN += -_gcc=-Wno-unused-function CERRWARN += -_gcc=-Wno-address +# not linted +SMATCH=off + # Setting THREAD_DEBUG = -DTHREAD_DEBUG (make THREAD_DEBUG=-DTHREAD_DEBUG ...) # enables ASSERT() checking in the threads portion of the library. # This is automatically enabled for DEBUG builds, not for non-debug builds. @@ -1317,7 +1320,7 @@ $(LIB_PIC): pics $$(PICS) $(POST_PROCESS_A) $(LIBCBASE)/crt/_rtbootld.s: $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.c - $(CC) $(CPPFLAGS) $(CTF_FLAGS) -O -S $(C_PICFLAGS) \ + $(CC) $(CPPFLAGS) -_smatch=off $(CTF_FLAGS) -O -S $(C_PICFLAGS) \ $(LIBCBASE)/crt/_rtld.c -o $(LIBCBASE)/crt/_rtld.s $(CAT) $(LIBCBASE)/crt/_rtboot.s $(LIBCBASE)/crt/_rtld.s > $@ $(RM) $(LIBCBASE)/crt/_rtld.s diff --git a/usr/src/lib/libc/inc/libc_int.h b/usr/src/lib/libc/inc/libc_int.h index 940636b49c..0bc8a16fa0 100644 --- a/usr/src/lib/libc/inc/libc_int.h +++ b/usr/src/lib/libc/inc/libc_int.h @@ -74,7 +74,7 @@ extern "C" { typedef struct { int ci_tag; union { - int (*ci_func)(); + void *ci_func; long ci_val; char *ci_ptr; } ci_un; diff --git a/usr/src/lib/libc/port/gen/ssignal.c b/usr/src/lib/libc/port/gen/ssignal.c index 6030626b17..ce74eb2a07 100644 --- a/usr/src/lib/libc/port/gen/ssignal.c +++ b/usr/src/lib/libc/port/gen/ssignal.c @@ -25,9 +25,7 @@ */ /* Copyright (c) 1988 AT&T */ -/* All Rights Reserved */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* All Rights Reserved */ /* * ssignal, gsignal: software signals @@ -54,8 +52,9 @@ ssignal(int sig, int (*action)(int)))(int) if (sig >= MINSIG && sig <= MAXSIGNUM) { savefn = sigs[sig-MINSIG]; sigs[sig-MINSIG] = action; - } else - savefn = (int(*)(int))SIG_DFL; + } else { + savefn = (int(*)(int))(uintptr_t)SIG_DFL; + } return (savefn); } @@ -66,12 +65,14 @@ gsignal(int sig) int (*sigfn)(int); if (sig < MINSIG || sig > MAXSIGNUM || - (sigfn = sigs[sig-MINSIG]) == (int(*)(int))SIG_DFL) + (sigfn = sigs[sig-MINSIG]) == (int(*)(int))(uintptr_t)SIG_DFL) { return (0); - else if (sigfn == (int(*)(int))SIG_IGN) - return (1); - else { - sigs[sig-MINSIG] = (int(*)(int))SIG_DFL; - return ((*sigfn)(sig)); + } else { + if (sigfn == (int(*)(int))(uintptr_t)SIG_IGN) { + return (1); + } else { + sigs[sig-MINSIG] = (int(*)(int))(uintptr_t)SIG_DFL; + return ((*sigfn)(sig)); + } } } diff --git a/usr/src/lib/libc/port/threads/c11_thr.c b/usr/src/lib/libc/port/threads/c11_thr.c index a33fa12743..98e72c9b04 100644 --- a/usr/src/lib/libc/port/threads/c11_thr.c +++ b/usr/src/lib/libc/port/threads/c11_thr.c @@ -195,7 +195,8 @@ thrd_create(thrd_t *thr, thrd_start_t func, void *arg) { int ret; - ret = pthread_create(thr, NULL, (void *(*)(void *))func, arg); + ret = pthread_create(thr, NULL, + (void *(*)(void *))(uintptr_t)func, arg); if (ret == 0) return (thrd_success); else if (ret == -1 && errno == EAGAIN) diff --git a/usr/src/lib/libc/port/threads/pthread.c b/usr/src/lib/libc/port/threads/pthread.c index 34b4b4c73c..dc0123361d 100644 --- a/usr/src/lib/libc/port/threads/pthread.c +++ b/usr/src/lib/libc/port/threads/pthread.c @@ -177,6 +177,14 @@ pthread_create(pthread_t *thread, const pthread_attr_t *attr, return (error); } +static void +_mutex_unlock_wrap(void *ptr) +{ + mutex_t *mp = ptr; + + (void) mutex_unlock(mp); +} + /* * pthread_once: calls given function only once. * it synchronizes via mutex in pthread_once_t structure @@ -192,7 +200,7 @@ pthread_once(pthread_once_t *once_control, void (*init_routine)(void)) if (once->once_flag == PTHREAD_ONCE_NOTDONE) { (void) mutex_lock(&once->mlock); if (once->once_flag == PTHREAD_ONCE_NOTDONE) { - pthread_cleanup_push(mutex_unlock, &once->mlock); + pthread_cleanup_push(_mutex_unlock_wrap, &once->mlock); (*init_routine)(); pthread_cleanup_pop(0); membar_producer(); diff --git a/usr/src/lib/libc/port/threads/tls.c b/usr/src/lib/libc/port/threads/tls.c index 9822cc5367..31fd1c5368 100644 --- a/usr/src/lib/libc/port/threads/tls.c +++ b/usr/src/lib/libc/port/threads/tls.c @@ -199,13 +199,13 @@ extern int _preexec_exit_handlers(); extern void libc_init(); const Lc_interface tls_rtldinfo[] = { - {CI_VERSION, (int(*)())CI_V_CURRENT}, - {CI_ATEXIT, (int(*)())_preexec_exit_handlers}, - {CI_TLS_MODADD, (int(*)())__tls_mod_add}, - {CI_TLS_MODREM, (int(*)())__tls_mod_remove}, - {CI_TLS_STATMOD, (int(*)())__tls_static_mods}, - {CI_THRINIT, (int(*)())libc_init}, - {CI_NULL, (int(*)())NULL} + { .ci_tag = CI_VERSION, .ci_un.ci_val = CI_V_CURRENT }, + { .ci_tag = CI_ATEXIT, .ci_un.ci_func = _preexec_exit_handlers }, + { .ci_tag = CI_TLS_MODADD, .ci_un.ci_func = __tls_mod_add }, + { .ci_tag = CI_TLS_MODREM, .ci_un.ci_func = __tls_mod_remove }, + { .ci_tag = CI_TLS_STATMOD, .ci_un.ci_func = __tls_static_mods }, + { .ci_tag = CI_THRINIT, .ci_un.ci_func = libc_init }, + { .ci_tag = CI_NULL, .ci_un.ci_func = NULL } }; /* |