Fix nice...
...by switching to the NetBSD implementation. Change-Id: I562b27b237a24ded95804035cc322c7bff12ff59
This commit is contained in:
		@@ -31,7 +31,6 @@ libc_common_src_files := \
 | 
			
		||||
	unistd/killpg.c \
 | 
			
		||||
	unistd/lseek64.c \
 | 
			
		||||
	unistd/mmap.c \
 | 
			
		||||
	unistd/nice.c \
 | 
			
		||||
	unistd/open.c \
 | 
			
		||||
	unistd/openat.c \
 | 
			
		||||
	unistd/opendir.c \
 | 
			
		||||
@@ -338,6 +337,7 @@ libc_common_src_files := \
 | 
			
		||||
	regex/regfree.c \
 | 
			
		||||
 | 
			
		||||
libc_upstream_netbsd_src_files := \
 | 
			
		||||
	upstream-netbsd/libc/gen/nice.c \
 | 
			
		||||
	upstream-netbsd/libc/string/strxfrm.c \
 | 
			
		||||
 | 
			
		||||
# The following files are common, but must be compiled
 | 
			
		||||
@@ -749,6 +749,7 @@ include $(CLEAR_VARS)
 | 
			
		||||
LOCAL_SRC_FILES := $(libc_upstream_netbsd_src_files)
 | 
			
		||||
LOCAL_CFLAGS := \
 | 
			
		||||
    $(libc_common_cflags) \
 | 
			
		||||
    -I$(LOCAL_PATH)/upstream-netbsd \
 | 
			
		||||
    -include upstream-netbsd/netbsd-compat.h
 | 
			
		||||
LOCAL_C_INCLUDES := $(libc_common_c_includes)
 | 
			
		||||
LOCAL_MODULE := libc_netbsd
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2008 The Android Open Source Project
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
 * are met:
 | 
			
		||||
 *  * Redistributions of source code must retain the above copyright
 | 
			
		||||
 *    notice, this list of conditions and the following disclaimer.
 | 
			
		||||
 *  * 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 COPYRIGHT HOLDERS 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
 | 
			
		||||
 * COPYRIGHT OWNER 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 <sys/resource.h>
 | 
			
		||||
 | 
			
		||||
int nice(int increment)
 | 
			
		||||
{
 | 
			
		||||
    int  priority = getpriority(PRIO_PROCESS, 0);
 | 
			
		||||
 | 
			
		||||
    return setpriority( PRIO_PROCESS, 0, priority+increment);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								libc/upstream-netbsd/libc/gen/nice.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								libc/upstream-netbsd/libc/gen/nice.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
/*	$NetBSD: nice.c,v 1.13 2011/05/01 02:49:54 christos Exp $	*/
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 1983, 1993
 | 
			
		||||
 *	The Regents of the University of California.  All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * 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.
 | 
			
		||||
 * 3. Neither the name of the University nor the names of its contributors
 | 
			
		||||
 *    may be used to endorse or promote products derived from this software
 | 
			
		||||
 *    without specific prior written permission.
 | 
			
		||||
 *
 | 
			
		||||
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 <sys/cdefs.h>
 | 
			
		||||
#if defined(LIBC_SCCS) && !defined(lint)
 | 
			
		||||
#if 0
 | 
			
		||||
static char sccsid[] = "@(#)nice.c	8.1 (Berkeley) 6/4/93";
 | 
			
		||||
#else
 | 
			
		||||
__RCSID("$NetBSD: nice.c,v 1.13 2011/05/01 02:49:54 christos Exp $");
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* LIBC_SCCS and not lint */
 | 
			
		||||
 | 
			
		||||
#include "namespace.h"
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <sys/resource.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
#ifdef __weak_alias
 | 
			
		||||
__weak_alias(nice,_nice)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Backwards compatible nice.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
nice(int incr)
 | 
			
		||||
{
 | 
			
		||||
	int prio;
 | 
			
		||||
 | 
			
		||||
	errno = 0;
 | 
			
		||||
	prio = getpriority(PRIO_PROCESS, 0);
 | 
			
		||||
	if (prio == -1 && errno)
 | 
			
		||||
		return -1;
 | 
			
		||||
	if (setpriority(PRIO_PROCESS, 0, prio + incr) == -1) {
 | 
			
		||||
		if (errno == EACCES)
 | 
			
		||||
			errno = EPERM;
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	return getpriority(PRIO_PROCESS, 0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								libc/upstream-netbsd/namespace.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								libc/upstream-netbsd/namespace.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2012 The Android Open Source Project
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *      http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef _BIONIC_NETBSD_NAMESPACE_H_included
 | 
			
		||||
#define _BIONIC_NETBSD_NAMESPACE_H_included
 | 
			
		||||
 | 
			
		||||
// NetBSD uses __weak_alias on a lot of functions. We don't want that.
 | 
			
		||||
#if defined(__weak_alias)
 | 
			
		||||
#undef __weak_alias
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
		Reference in New Issue
	
	Block a user