Skip to content

Commit

Permalink
Libraries updates and cleanup
Browse files Browse the repository at this point in the history
 * Updating common/lib
 * Updating lib/csu
 * Updating lib/libc
 * Updating libexec/ld.elf_so
 * Corrected test on __minix in featuretest to actually follow the
   meaning of the comment.
 * Cleaned up _REENTRANT-related defintions.
 * Disabled -D_REENTRANT for libfetch
 * Removing some unneeded __NBSD_LIBC defines and tests

Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
  • Loading branch information
sambuc committed Jan 14, 2013
1 parent f6aac1c commit f14fb60
Show file tree
Hide file tree
Showing 1,285 changed files with 44,143 additions and 14,207 deletions.
1 change: 1 addition & 0 deletions commands/diff/xmalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <err.h>
#include <limits.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Expand Down
2 changes: 1 addition & 1 deletion commands/dosread/dosread.c
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ unsigned short mon_len[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
void fill_date(entry)
DIRECTORY *entry;
{
register long cur_time = time((long *) 0) - DOS_TIME;
register long cur_time = time(NULL) - DOS_TIME;
unsigned short year = 0, month = 1, day, hour, minutes, seconds;
int i;
long tmp;
Expand Down
3 changes: 2 additions & 1 deletion commands/elvis/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,8 @@ extern char *malloc();
#endif

/* everybody but Amiga wants lseek declared here */
#if !AMIGA
/* LSC: MINIX Does not want it either! */
#if !AMIGA && !defined(__minix)
extern long lseek();
#endif

Expand Down
4 changes: 2 additions & 2 deletions commands/partition/partition.c
Original file line number Diff line number Diff line change
Expand Up @@ -419,11 +419,11 @@ int main(int argc, char **argv)
if (rflag) {
if (aflag) usage();
if ((argc - i) != 1) usage();
fprintf(stderr, "%s: -r is not yet implemented\n");
fprintf(stderr, "%s: -r is not yet implemented\n", __func__);
exit(1);
} else {
if ((argc - i) < 1) usage();
if (aflag) fprintf(stderr, "%s: -a is not yet implemented\n");
if (aflag) fprintf(stderr, "%s: -a is not yet implemented\n", __func__);

device= argv[i++];
geometry();
Expand Down
2 changes: 1 addition & 1 deletion commands/playwave/playwave.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ void usage()
int main ( int argc, char *argv[] )
{
int i, r, audio, file;
char *buffer, *file_name;
char *buffer, *file_name = NULL;
unsigned int sign;
unsigned int fragment_size;
unsigned int channels;
Expand Down
3 changes: 1 addition & 2 deletions commands/repartition/repartition.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ int diocntl(dev_t device, int request, struct partition *entry)
{
char *name;
int r, f, err;
struct partition geometry;

name= finddev(device);
if ((f= open(name, O_RDONLY)) < 0) return -1;
Expand Down Expand Up @@ -164,7 +163,7 @@ int main(int argc, char **argv)
struct stat hdst;
struct partition whole, entry;
struct part_entry table[4], *pe;
int drive, par, device, incr;
int drive, par = 0, device, incr;
int partf;
char *table_file;
int hd_major, hd_minor;
Expand Down
3 changes: 1 addition & 2 deletions common/lib/libc/Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
COMMON_DIR:=${.PARSEDIR}
.if defined(__MINIX)
COMMON_CODEDIRS=atomic gen inet md net quad stdlib string
COMMON_CODEDIRS+=hash/sha1 hash/sha2 hash/rmd160
.else
COMMON_CODEDIRS=atomic gen gmon inet md net quad stdlib string sys
COMMON_CODEDIRS+=hash/sha1 hash/sha2 hash/rmd160 hash/murmurhash
.endif
COMMON_CODEDIRS+=hash/sha1 hash/sha2 hash/rmd160 hash/murmurhash

.if defined(COMMON_MACHINE_ARCH) && !empty(COMMON_MACHINE_ARCH) && \
exists(${COMMON_DIR}/arch/${COMMON_MACHINE_ARCH})
Expand Down
12 changes: 11 additions & 1 deletion common/lib/libc/arch/arm/atomic/atomic_add_32.S
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* $NetBSD: atomic_add_32.S,v 1.2 2008/08/16 07:12:39 matt Exp $ */
/* $NetBSD: atomic_add_32.S,v 1.3 2012/08/31 23:41:52 matt Exp $ */

/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
Expand Down Expand Up @@ -40,6 +40,11 @@ ENTRY_NP(_atomic_add_32)
strex ip, r2, [r3] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
RET /* return old value */
END(_atomic_add_32)
ATOMIC_OP_ALIAS(atomic_add_32,_atomic_add_32)
Expand All @@ -57,6 +62,11 @@ ENTRY_NP(_atomic_add_32_nv)
strex r2, r0, [r3] /* try to store */
cmp r2, #0 /* succeed? */
bne 1b /* no, try again? */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
RET /* return new value */
END(_atomic_add_32_nv)
ATOMIC_OP_ALIAS(atomic_add_32_nv,_atomic_add_32_nv)
Expand Down
81 changes: 81 additions & 0 deletions common/lib/libc/arch/arm/atomic/atomic_add_64.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/* $NetBSD: atomic_add_64.S,v 1.3 2012/09/13 00:36:12 matt Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Matt Thomas <[email protected]>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

#include "atomic_op_asm.h"

#ifdef _ARM_ARCH_6

ENTRY_NP(_atomic_add_64)
str r4, [sp, #-4]! /* save temporary */
mov r4, r0 /* need r0 for return value */
#ifndef __ARM_EABI__
mov r3, r2
mov r2, r1
#endif
1: ldrexd r0, [r4] /* load old value (to be returned) */
adds NLO, LO, NLO /* calculate new value */
adc NHI, HI, NHI /* calculate new value */
strexd ip, r2, [r4] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
ldr r4, [sp], #4 /* restore temporary */
RET /* return old value */
END(_atomic_add_64)
ATOMIC_OP_ALIAS(atomic_add_64,_atomic_add_64)

ENTRY_NP(_atomic_add_64_nv)
str r4, [sp, #-4]! /* save temporary */
mov r4, r0 /* need r0 for return value */
#ifndef __ARM_EABI__
mov r3, r2
mov r2, r1
#endif
1: ldrexd r0, [r4] /* load old value */
adds LO, LO, NLO /* calculate new value lo */
adc HI, HI, NHI /* calculate new value hi */
strexd ip, r0, [r4] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again? */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
ldr r4, [sp], #4 /* restore temporary */
RET /* return new value */
END(_atomic_add_64_nv)
ATOMIC_OP_ALIAS(atomic_add_64_nv,_atomic_add_64_nv)

#endif /* _ARM_ARCH_6 */
12 changes: 11 additions & 1 deletion common/lib/libc/arch/arm/atomic/atomic_and_32.S
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* $NetBSD: atomic_and_32.S,v 1.2 2008/08/16 07:12:39 matt Exp $ */
/* $NetBSD: atomic_and_32.S,v 1.3 2012/08/31 23:41:52 matt Exp $ */

/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
Expand Down Expand Up @@ -40,6 +40,11 @@ ENTRY_NP(_atomic_and_32)
strex ip, r2, [r3] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
RET /* return old value */
END(_atomic_and_32)
ATOMIC_OP_ALIAS(atomic_and_32,_atomic_and_32)
Expand All @@ -55,6 +60,11 @@ ENTRY_NP(_atomic_and_32_nv)
strex r2, r0, [r3] /* try to store */
cmp r2, #0 /* succeed? */
bne 1b /* no, try again? */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
RET /* return new value */
END(_atomic_and_32_nv)
ATOMIC_OP_ALIAS(atomic_and_32_nv,_atomic_and_32_nv)
Expand Down
81 changes: 81 additions & 0 deletions common/lib/libc/arch/arm/atomic/atomic_and_64.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/* $NetBSD: atomic_and_64.S,v 1.2 2012/09/13 00:36:12 matt Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Matt Thomas <[email protected]>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

#include "atomic_op_asm.h"

#ifdef _ARM_ARCH_6

ENTRY_NP(_atomic_and_64)
str r4, [sp, #-4]! /* save temporary */
#ifndef __ARM_EABI__
mov r3, r2
mov r2, r1
#endif
mov r4, r0 /* need r0 for return value */
1: ldrexd r0, [r4] /* load old value (to be returned) */
and r2, r0, r2 /* calculate new value */
and r3, r1, r3 /* calculate new value */
strexd ip, r2, [r4] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
ldr r4, [sp], #4 /* restore temporary */
RET /* return old value */
END(_atomic_and_64)
ATOMIC_OP_ALIAS(atomic_and_64,_atomic_and_64)

ENTRY_NP(_atomic_and_64_nv)
str r4, [sp, #-4]! /* save temporary */
#ifndef __ARM_EABI__
mov r3, r2
mov r2, r1
#endif
mov r4, r0 /* need r0 for return value */
1: ldrexd r0, [r4] /* load old value */
and r0, r0, r2 /* calculate new value */
and r1, r1, r3 /* calculate new value */
strexd ip, r0, [r4] /* try to store */
cmp ip, #0 /* succeed? */
bne 1b /* no, try again? */
#ifdef _ARM_ARCH_7
dmb
#else
mcr p15, 0, ip, c7, c10, 5 /* data memory barrier */
#endif
ldr r4, [sp], #4 /* restore temporary */
RET /* return new value */
END(_atomic_and_64_nv)
ATOMIC_OP_ALIAS(atomic_and_64_nv,_atomic_and_64_nv)

#endif /* _ARM_ARCH_6 */
17 changes: 15 additions & 2 deletions common/lib/libc/arch/arm/atomic/atomic_cas_32.S
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* $NetBSD: atomic_cas_32.S,v 1.2 2008/08/16 07:12:39 matt Exp $ */
/* $NetBSD: atomic_cas_32.S,v 1.3 2012/08/31 23:41:52 matt Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
* All rights reserved.
Expand Down Expand Up @@ -44,15 +44,28 @@ ENTRY_NP(_atomic_cas_32)
strex ip, r2, [r3] /* store new value */
cmp ip, #0 /* succeed? */
bne 1b /* nope, try again. */
RET /* yes, return. */
#ifdef _ARM_ARCH_7
dsb
#else
mcr p15, 0, ip, c7, c10, 4 /* data synchronization barrier */
#endif
RET /* return. */
END(_atomic_cas_32)

ATOMIC_OP_ALIAS(atomic_cas_32,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_uint,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_ulong,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_ptr,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_32_ni,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_uint_ni,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_ulong_ni,_atomic_cas_32)
ATOMIC_OP_ALIAS(atomic_cas_ptr_ni,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_uint,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_ulong,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_32_ni,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_ptr_ni,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_uint_ni,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_ulong_ni,_atomic_cas_32)
STRONG_ALIAS(_atomic_cas_ptr,_atomic_cas_32)

#endif /* _ARCH_ARM_6 */
Loading

0 comments on commit f14fb60

Please sign in to comment.