devel
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- 1174 discussions
uClibc-ng - small C library for embedded systems branch master updated. 1a3b9cf039abc53825b3f65992cc22c36692dc02
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
18 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 1a3b9cf039abc53825b3f65992cc22c36692dc02 (commit)
from ff07819c8e36226e4cf2c528237906e606d82afe (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1a3b9cf039abc53825b3f65992cc22c36692dc02
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Mon Oct 19 01:38:29 2015 +0200
cleanup special purpose warnings
-----------------------------------------------------------------------
Summary of changes:
Makefile.in | 1 -
extra/Configs/Config.in | 14 ------
extra/Configs/defconfigs/or1k/defconfig | 1 -
include/nl_types.h | 4 --
include/time.h | 53 ---------------------
include/wctype.h | 5 --
libc/inet/resolv.c | 3 --
libc/misc/ctype/ctype.c | 11 +----
libc/misc/error/err.c | 6 ---
libc/misc/locale/locale.c | 77 -------------------------------
libc/misc/time/time.c | 9 ----
libc/misc/wchar/wchar.c | 35 --------------
libc/misc/wctype/_wctype.c | 36 ---------------
libc/stdio/_READ.c | 6 ---
libc/stdio/_WRITE.c | 3 --
libc/stdio/_fopen.c | 9 ----
libc/stdio/_fpmaxtostr.c | 9 ----
libc/stdio/_fwrite.c | 6 ---
libc/stdio/_rfill.c | 4 --
libc/stdio/_scanf.c | 49 --------------------
libc/stdio/_vfprintf.c | 37 ---------------
libc/stdio/_wfwrite.c | 5 --
libc/stdio/fclose.c | 3 --
libc/stdio/fcloseall.c | 6 ---
libc/stdio/fflush.c | 13 ------
libc/stdio/fgets.c | 6 ---
libc/stdio/fputc.c | 5 --
libc/stdio/fread.c | 4 --
libc/stdio/ftrylockfile.c | 4 --
libc/stdio/perror.c | 5 --
libc/stdio/popen.c | 4 --
libc/stdio/ungetc.c | 3 --
libc/stdio/vasprintf.c | 6 ---
libc/stdio/vsnprintf.c | 5 --
libc/stdlib/drand48-iter.c | 3 --
libc/stdlib/stdlib.c | 9 ----
libc/string/_collate.c | 36 ---------------
37 files changed, 1 insertion(+), 494 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 5048c11..4e9c7c2 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -488,7 +488,6 @@ allyesconfig: $(conf)
-e "s/^DOASSERTS=.*/# DOASSERTS is not set/" \
-e "s/^SUPPORT_LD_DEBUG_EARLY=.*/# SUPPORT_LD_DEBUG_EARLY is not set/" \
-e "s/^SUPPORT_LD_DEBUG=.*/# SUPPORT_LD_DEBUG is not set/" \
- -e "s/^UCLIBC_MJN3_ONLY=.*/# UCLIBC_MJN3_ONLY is not set/" \
$(KCONFIG_CONFIG)
$(Q)$< -o $(Kconfig)
alldefconfig: $(conf)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 48ce506..a708e12 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -1826,20 +1826,6 @@ config UCLIBC_HAS_SYS_SIGLIST
Most people will answer N.
-config UCLIBC_HAS_GETTEXT_AWARENESS
- bool "Include gettext awareness"
- depends on UCLIBC_HAS_LOCALE && UCLIBC_MJN3_ONLY
- help
- NOTE!!! Not yet integrated with strerror and strsignal. NOTE!!!
-
- Answer Y if you want to include weak stub gettext support and
- make the *strerror*() and strsignal() functions gettext-aware.
-
- Currently, to get functional gettext functionality you will need
- to use gnu gettext.
-
- Most people will answer N.
-
config UCLIBC_HAS_GNU_GETOPT
bool "Support gnu getopt"
default y
diff --git a/extra/Configs/defconfigs/or1k/defconfig b/extra/Configs/defconfigs/or1k/defconfig
index f8b8d2b..63110e6 100644
--- a/extra/Configs/defconfigs/or1k/defconfig
+++ b/extra/Configs/defconfigs/or1k/defconfig
@@ -242,4 +242,3 @@ UCLIBC_EXTRA_CFLAGS=""
WARNINGS="-Wall"
# EXTRA_WARNINGS is not set
# DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
diff --git a/include/nl_types.h b/include/nl_types.h
index cb86cf0..3692d0c 100644
--- a/include/nl_types.h
+++ b/include/nl_types.h
@@ -31,10 +31,6 @@
__BEGIN_DECLS
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning "mjn3 FIXME: None of these prototypes have implementations."
-#endif
-
#ifndef __UCLIBC_STRICT_HEADERS__
/* Message catalog descriptor type. */
typedef void *nl_catd;
diff --git a/include/time.h b/include/time.h
index a1dfdea..785c8f6 100644
--- a/include/time.h
+++ b/include/time.h
@@ -288,16 +288,6 @@ extern char *ctime_r (const time_t *__restrict __timer,
char *__restrict __buf) __THROW;
# endif /* POSIX or misc */
-
-/* Defined in localtime.c. */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning "mjn3 FIXME: __tzname, __daylight, and __timezone have a prototype but are not defined."
-extern char *__tzname[2]; /* Current timezone names. */
-extern int __daylight; /* If daylight-saving time is ever in use. */
-extern long int __timezone; /* Seconds west of UTC. */
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
-
# ifdef __USE_POSIX
/* Same as above. */
extern char *tzname[2];
@@ -403,49 +393,6 @@ extern int timer_getoverrun (timer_t __timerid) __THROW;
# endif /* __UCLIBC_HAS_REALTIME__ */
# endif /* __USE_POSIX199309 */
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning "mjn3 FIXME: a bunch of unimplemented function prototypes."
-# ifdef __USE_XOPEN_EXTENDED
-/* Set to one of the following values to indicate an error.
- 1 the DATEMSK environment variable is null or undefined,
- 2 the template file cannot be opened for reading,
- 3 failed to get file status information,
- 4 the template file is not a regular file,
- 5 an error is encountered while reading the template file,
- 6 memory allication failed (not enough memory available),
- 7 there is no line in the template that matches the input,
- 8 invalid input specification Example: February 31 or a time is
- specified that can not be represented in a time_t (representing
- the time in seconds since 00:00:00 UTC, January 1, 1970) */
-extern int getdate_err;
-
-/* Parse the given string as a date specification and return a value
- representing the value. The templates from the file identified by
- the environment variable DATEMSK are used. In case of an error
- `getdate_err' is set.
-
- This function is a possible cancellation points and therefore not
- marked with __THROW. */
-extern struct tm *getdate (const char *__string);
-# endif
-
-# ifdef __USE_GNU
-/* Since `getdate' is not reentrant because of the use of `getdate_err'
- and the static buffer to return the result in, we provide a thread-safe
- variant. The functionality is the same. The result is returned in
- the buffer pointed to by RESBUFP and in case of an error the return
- value is != 0 with the same values as given above for `getdate_err'.
-
- This function is not part of POSIX and therefore no official
- cancellation point. But due to similarity with an POSIX interface
- or due to the implementation it is a cancellation point and
- therefore not marked with __THROW. */
-extern int getdate_r (const char *__restrict __string,
- struct tm *__restrict __resbufp);
-# endif
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
__END_DECLS
#endif /* <time.h> included. */
diff --git a/include/wctype.h b/include/wctype.h
index aa133bd..3842ccf 100644
--- a/include/wctype.h
+++ b/include/wctype.h
@@ -101,11 +101,6 @@ enum
_ISwpunct = _ISwbit (__ISwpunct), /* Punctuation. */
_ISwalnum = _ISwbit (__ISwalnum) /* Alphanumeric. */
};
-# else
-# if defined(__UCLIBC_MJN3_ONLY__) && defined(L_iswctype)
-#warning remove _ISwbit already defined check?
-#error _ISwbit already defined!
-# endif
# endif /* Not _ISwbit */
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index fffe428..724c311 100644
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -2070,9 +2070,6 @@ int gethostbyname_r(const char *name,
return ERANGE;
/* we store only one "alias" - the name itself */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO -- generate the full list
-#endif
alias[0] = alias0;
alias[1] = NULL;
diff --git a/libc/misc/ctype/ctype.c b/libc/misc/ctype/ctype.c
index db8061d..bbe12e5 100644
--- a/libc/misc/ctype/ctype.c
+++ b/libc/misc/ctype/ctype.c
@@ -62,16 +62,7 @@
#endif /* __UCLIBC_HAS_CTYPE_SIGNED__ */
#endif /* __UCLIBC_HAS_CTYPE_TABLES__ */
-/**********************************************************************/
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_isspace
-/* emit only once */
-#warning CONSIDER: Should we assert when debugging and __UCLIBC_HAS_CTYPE_CHECKED?
-#warning TODO: Fix asserts in to{upper|lower}{_l}.
-#warning TODO: Optimize the isx*() funcs.
-#endif
-#endif /* __UCLIBC_MJN3_ONLY__ */
-/**********************************************************************/
+
#undef PASTE2
#define PASTE2(X,Y) X ## Y
diff --git a/libc/misc/error/err.c b/libc/misc/error/err.c
index 4f1e6a3..1563450 100644
--- a/libc/misc/error/err.c
+++ b/libc/misc/error/err.c
@@ -12,14 +12,8 @@
#include <errno.h>
#include <err.h>
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: Deal with wide oriented stderr case.
-#endif
-
#if defined __USE_BSD
-
-
static void vwarn_work(const char *format, va_list args, int showerr)
{
/* 0123 45678 9 a b*/
diff --git a/libc/misc/locale/locale.c b/libc/misc/locale/locale.c
index 68e5441..5dc0091 100644
--- a/libc/misc/locale/locale.c
+++ b/libc/misc/locale/locale.c
@@ -58,11 +58,6 @@
#include <ctype.h>
#include <stdio.h>
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_setlocale
-#warning TODO: Make the link_warning()s a config option?
-#endif
-#endif
#undef link_warning
#define link_warning(A,B)
@@ -78,13 +73,6 @@
#else /* __LOCALE_C_ONLY */
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_setlocale
-#warning TODO: Fix the __CTYPE_HAS_8_BIT_LOCALES define at the top of the file.
-#warning TODO: Fix __WCHAR_ENABLED.
-#endif
-#endif
-
/* Need to include this before locale.h! */
#include <bits/uClibc_locale.h>
@@ -107,9 +95,6 @@
#define LOCALE_AT_MODIFIERS (__locale_mmap->locale_at_modifiers)
#define CATEGORY_NAMES (__locale_mmap->lc_names)
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: redo the MAX_LOCALE_STR stuff...
-#endif
#define MAX_LOCALE_STR 256 /* TODO: Only sufficient for current case. */
#define MAX_LOCALE_CATEGORY_STR 32 /* TODO: Only sufficient for current case. */
/* Note: Best if MAX_LOCALE_CATEGORY_STR is a power of 2. */
@@ -122,11 +107,6 @@ extern void _locale_init_l(__locale_t base) attribute_hidden;
#undef LOCALE_STRING_SIZE
#define LOCALE_SELECTOR_SIZE (2 * __LC_ALL + 2)
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_setlocale
-#warning TODO: Create a C locale selector string.
-#endif
-#endif
#define C_LOCALE_SELECTOR "\x23\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80"
@@ -163,15 +143,9 @@ link_warning(setlocale,"REMINDER: The 'setlocale' function is _not_ threadsafe e
#error locales enabled, but not data other than for C locale!
#endif
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Move posix and utf8 strings.
-#endif
static const char posix[] = "POSIX";
static const char utf8[] = "UTF-8";
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix dimensions of hr_locale.
-#endif
/* Individual category strings start at hr_locale + category * MAX_LOCALE_CATEGORY.
* This holds for LC_ALL as well.
*/
@@ -355,9 +329,6 @@ __locale_t __curlocale_var = &__global_locale_data;
#endif
/*----------------------------------------------------------------------*/
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Move utf8 and ascii strings.
-#endif
static const char utf8[] = "UTF-8";
static const char ascii[] = "ASCII";
@@ -413,9 +384,6 @@ static int init_cur_collate(int der_num, __collate_t *cur_collate)
size_t n;
uint16_t i, w;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning kill of x86-specific asserts
-#endif
#if 0
assert(sizeof(coldata_base_t) == 19*2);
assert(sizeof(coldata_der_t) == 4*2);
@@ -431,9 +399,6 @@ static int init_cur_collate(int der_num, __collate_t *cur_collate)
cdh = (coldata_header_t *) __locale_collate_tbl;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we assert here?
-#endif
#if 0
if (der_num >= cdh->num_der) {
return 0;
@@ -492,11 +457,6 @@ static int init_cur_collate(int der_num, __collate_t *cur_collate)
cur_collate->MAX_WEIGHTS = cdh->MAX_WEIGHTS;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Fix the +1 by increasing max_col_index?
-#warning CONSIDER: Since this collate info is dependent only on LC_COLLATE ll_cc and not on codeset, we could just globally allocate this for each in a table
-#endif
-
cur_collate->index2weight = calloc(2*cur_collate->max_col_index+2,
sizeof(uint16_t));
if (!cur_collate->index2weight) {
@@ -643,9 +603,6 @@ int attribute_hidden _locale_set_l(const unsigned char *p, __locale_t base)
c -= 3;
base->codeset = (char *) (r + r[c]);
base->encoding = __ctype_encoding_8_bit;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: update 8 bit mb_cur_max when translit implemented!
-#endif
/* TODO - update when translit implemented! */
base->mb_cur_max = 1;
c8b = __locale_mmap->codeset_8_bit + c;
@@ -775,9 +732,6 @@ int attribute_hidden _locale_set_l(const unsigned char *p, __locale_t base)
#endif /* __CTYPE_HAS_8_BIT_LOCALES */
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Put the outdigit string length in the locale_mmap object.
-#endif
d = base->outdigit_length;
x = &base->outdigit0_mb;
for (c = 0 ; c < 10 ; c++) {
@@ -798,9 +752,6 @@ int attribute_hidden _locale_set_l(const unsigned char *p, __locale_t base)
= __locale_mbrtowc_l(&base->thousands_sep_wc,
base->thousands_sep, base);
#if 1
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Remove hack involving grouping without a thousep char (bg_BG).
-#endif
assert(base->thousands_sep_len >= 0);
if (base->thousands_sep_len == 0) {
base->grouping = base->thousands_sep; /* empty string */
@@ -898,9 +849,6 @@ void attribute_hidden _locale_init_l(__locale_t base)
__ctype_toupper = __C_ctype_toupper;
#endif /* __UCLIBC_HAS_XLOCALE__ */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Initialize code2flag correctly based on locale_mmap.
-#endif
base->code2flag = __code2flag;
_locale_set_l((unsigned char*) C_LOCALE_SELECTOR, base);
@@ -1056,9 +1004,6 @@ libc_hidden_def(__XL_NPP(nl_langinfo))
#warning mask defines for extra locale categories
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Move posix and utf8 strings.
-#endif
static const char posix[] = "POSIX";
static const char utf8[] = "UTF-8";
@@ -1073,9 +1018,6 @@ static int find_locale(int category_mask, const char *p,
#if defined(__LOCALE_DATA_AT_MODIFIERS_LENGTH) && 1
/* Support standard locale handling for @-modifiers. */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: Fix buf size in find_locale.
-#endif
char buf[18]; /* TODO: 7+{max codeset name length} */
const char *q;
@@ -1226,9 +1168,6 @@ __locale_t newlocale(int category_mask, const char *locale, __locale_t base)
return NULL; /* No locale or illegal/unsupported category. */
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Rename cur_locale to locale_selector.
-#endif
strcpy((char *) new_selector,
(base ? (char *) base->cur_locale : C_LOCALE_SELECTOR));
@@ -1272,15 +1211,8 @@ __locale_t newlocale(int category_mask, const char *locale, __locale_t base)
goto INVALID;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Do a compatible codeset check!
-#endif
-
/* If we get here, the new selector corresponds to a valid locale. */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Probably want a _locale_new func to allow for caching of locales.
-#endif
#if 0
if (base) {
_locale_set_l(new_selector, base);
@@ -1308,11 +1240,6 @@ libc_hidden_def(newlocale)
/**********************************************************************/
#ifdef L_duplocale
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: When we allocate ctype tables, remember to dup them.
-#endif
-
__locale_t duplocale(__locale_t dataset)
{
__locale_t r;
@@ -1341,10 +1268,6 @@ __locale_t duplocale(__locale_t dataset)
/**********************************************************************/
#ifdef L_freelocale
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: When we allocate ctype tables, remember to free them.
-#endif
-
void freelocale(__locale_t dataset)
{
assert(dataset != __global_locale);
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index 03635d8..8045be4 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -1033,10 +1033,6 @@ static wchar_t* fmt_to_wc_1(const char *src)
#define MAX_PUSH 4
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Check multibyte format string validity.
-#endif
-
size_t __XL_NPP(strftime)(CHAR_T *__restrict s, size_t maxsize,
const CHAR_T *__restrict format,
const struct tm *__restrict timeptr __LOCALE_PARAM )
@@ -1870,11 +1866,6 @@ static const char *getnumber(register const char *e, int *pn)
#endif /* __BCC__ */
}
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we preserve errno from open/read/close errors re TZ file?
-#endif
-
#ifdef __UCLIBC_HAS_TZ_FILE__
#ifndef __UCLIBC_HAS_TZ_FILE_READ_MANY__
diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c
index 966f78d..201f307 100644
--- a/libc/misc/wchar/wchar.c
+++ b/libc/misc/wchar/wchar.c
@@ -112,12 +112,6 @@
/**********************************************************************/
#ifdef __UCLIBC_HAS_LOCALE__
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_iswspace
-/* generates one warning */
-#warning TODO: Fix Cc2wc* and Cwc2c* defines!
-#endif
-#endif /* __UCLIBC_MJN3_ONLY__ */
#define ENCODING (__UCLIBC_CURLOCALE->encoding)
@@ -134,13 +128,6 @@
#else /* __UCLIBC_HAS_LOCALE__ */
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_btowc
-/* emit only once */
-#warning fix preprocessor logic testing locale settings
-#endif
-#endif
-
#define ENCODING (__ctype_encoding_7_bit)
#ifdef __CTYPE_HAS_8_BIT_LOCALES
#error __CTYPE_HAS_8_BIT_LOCALES is defined!
@@ -313,10 +300,6 @@ size_t mbrtowc(wchar_t *__restrict pwc, const char *__restrict s,
}
#endif
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: This adds a trailing nul!
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
r = mbsnrtowcs(wcbuf, &p, SIZE_MAX, 1, ps);
if (((ssize_t) r) >= 0) {
@@ -339,9 +322,6 @@ libc_hidden_def(mbrtowc)
size_t wcrtomb(register char *__restrict s, wchar_t wc,
mbstate_t *__restrict ps)
{
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Should wcsnrtombs nul-terminate unconditionally? Check glibc.
-#endif /* __UCLIBC_MJN3_ONLY__ */
wchar_t wcbuf[1];
const wchar_t *pwc;
size_t r;
@@ -473,9 +453,6 @@ size_t attribute_hidden _wchar_utf8sntowcs(wchar_t *__restrict pwc, size_t wn,
--n;
if ((wc = ((unsigned char) *s++)) >= 0x80) { /* Not ASCII... */
mask = 0x40;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix range for 16 bit wchar_t case.
-#endif
if (( ((unsigned char)(s[-1] - 0xc0)) < (0xfe - 0xc0) ) &&
(((unsigned char)s[-1] != 0xc0 ) && ((unsigned char)s[-1] != 0xc1 ))) {
goto START;
@@ -910,12 +887,6 @@ libc_hidden_def(wcsnrtombs)
/**********************************************************************/
#ifdef L_wcswidth
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: If we start doing translit, wcwidth and wcswidth will need updating.
-#warning TODO: Update wcwidth to match latest by Kuhn.
-#endif
-
#if defined(__UCLIBC_HAS_LOCALE__) && \
( defined(__CTYPE_HAS_8_BIT_LOCALES) || defined(__CTYPE_HAS_UTF_8_LOCALES) )
@@ -1442,9 +1413,6 @@ size_t weak_function iconv(iconv_t cd, char **__restrict inbuf,
}
return (size_t)(-1);
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: optimize this.
-#endif
if (p != NULL) { /* incomplete char case */
goto INVALID;
}
@@ -1519,9 +1487,6 @@ size_t weak_function iconv(iconv_t cd, char **__restrict inbuf,
do {
r = _wchar_wcsntoutf8s(*outbuf, *outbytesleft, &pw, 1);
if (r != (size_t)(-1)) {
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: What happens for a nul?
-#endif
if (r == 0) {
if (wc != 0) {
goto TOO_BIG;
diff --git a/libc/misc/wctype/_wctype.c b/libc/misc/wctype/_wctype.c
index 68fae8b..81076ba 100644
--- a/libc/misc/wctype/_wctype.c
+++ b/libc/misc/wctype/_wctype.c
@@ -93,13 +93,6 @@ enum {
/*--------------------------------------------------------------------*/
-#ifdef __UCLIBC_MJN3_ONLY__
-# ifdef L_iswspace
-/* generates one warning */
-# warning TODO: Fix WC* defines!
-# endif
-#endif
-
#define ENCODING (__UCLIBC_CURLOCALE->encoding)
#define WCctype (__UCLIBC_CURLOCALE->tblwctype)
@@ -459,10 +452,6 @@ libc_hidden_def(wctype)
/**********************************************************************/
#ifdef L_wctype_l
-#ifdef __UCLIBC_MJN3_ONLY__
-# warning REMINDER: Currently wctype_l simply calls wctype.
-#endif
-
wctype_t wctype_l (const char *property, __locale_t locale)
{
return wctype(property);
@@ -485,12 +474,6 @@ wctype_t wctype_l (const char *property, __locale_t locale)
) \
)
-#ifdef __UCLIBC_MJN3_ONLY__
-# ifdef L_iswctype
-# warning CONSIDER: Change to bit shift? would need to sync with wctype.h
-# endif
-#endif
-
#ifdef __UCLIBC_HAS_CTYPE_TABLES__
# if !defined(__UCLIBC_HAS_XLOCALE__) || defined(L_iswctype_l)
static const unsigned short int desc2flag[] = {
@@ -570,12 +553,6 @@ int iswctype(wint_t wc, wctype_t desc)
#else /* __LOCALE_C_ONLY */
-#ifdef __UCLIBC_MJN3_ONLY__
-# ifdef L_iswctype
-# warning CONSIDER: Handle combining class?
-# endif
-#endif
-
#ifdef L_iswctype
# define ISWCTYPE(w,d) iswctype(w,d)
#else
@@ -629,9 +606,6 @@ int ISWCTYPE(wint_t wc, wctype_t desc)
#endif
}
-#ifdef __UCLIBC_MJN3_ONLY__
-# warning TODO: xdigit really needs to be handled better. Remember only for ascii!
-#endif
/* TODO - Add locale-specific classifications. */
return (desc == _CTYPE_iswxdigit) ? __C_iswxdigit(wc) : 0;
}
@@ -741,9 +715,6 @@ wint_t TOWCTRANS(wint_t wc, wctrans_t desc)
}
wc += WCuplow_diff[i];
if (desc == _CTYPE_totitle) {
-#ifdef __UCLIBC_MJN3_ONLY__
-# warning TODO: Verify totitle special cases!
-#endif
/* WARNING! These special cases work for glibc 2.2.4. Changes
* may be needed if the glibc locale tables are updated. */
if ((__uwchar_t)(wc - 0x1c4) <= (0x1cc - 0x1c4)
@@ -781,9 +752,6 @@ wint_t TOWCTRANS(wint_t wc, wctrans_t desc)
if ((unsigned)(desc - _CTYPE_toupper) <= (_CTYPE_totitle - _CTYPE_toupper)) {
wc = TOWUPPER(wc, __UCLIBC_CURLOCALE);
if (desc == _CTYPE_totitle) {
-#ifdef __UCLIBC_MJN3_ONLY__
-# warning TODO: Verify totitle special cases!
-#endif
/* WARNING! These special cases work for glibc 2.2.4. Changes
* may be needed if the glibc locale tables are updated. */
if ((__uwchar_t)(wc - 0x1c4) <= (0x1cc - 0x1c4)
@@ -843,10 +811,6 @@ libc_hidden_def(wctrans)
/**********************************************************************/
#ifdef L_wctrans_l
-# ifdef __UCLIBC_MJN3_ONLY__
-# warning REMINDER: Currently wctrans_l simply calls wctrans.
-# endif
-
wctrans_t wctrans_l(const char *property, __locale_t locale)
{
return wctrans(property);
diff --git a/libc/stdio/_READ.c b/libc/stdio/_READ.c
index 02601c0..dfd0f43 100644
--- a/libc/stdio/_READ.c
+++ b/libc/stdio/_READ.c
@@ -38,9 +38,6 @@ size_t attribute_hidden __stdio_READ(register FILE *stream,
bufsize = SSIZE_MAX;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning EINTR?
-#endif
/* RETRY: */
if ((rv = __READ(stream, (char *) buf, bufsize)) <= 0) {
if (rv == 0) {
@@ -50,9 +47,6 @@ size_t attribute_hidden __stdio_READ(register FILE *stream,
__STDIO_STREAM_SET_ERROR(stream);
rv = 0;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Make custom stream read return check optional.
-#endif
#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
} else {
assert(rv <= bufsize);
diff --git a/libc/stdio/_WRITE.c b/libc/stdio/_WRITE.c
index 6af5da8..b3e6ecb 100644
--- a/libc/stdio/_WRITE.c
+++ b/libc/stdio/_WRITE.c
@@ -46,9 +46,6 @@ size_t attribute_hidden __stdio_WRITE(register FILE *stream,
stodo = (todo <= SSIZE_MAX) ? todo : SSIZE_MAX;
rv = __WRITE(stream, (char *) buf, stodo);
if (rv >= 0) {
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Make custom stream write return check optional.
-#endif
#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
assert(rv <= stodo);
if (rv > stodo) { /* Wrote more than stodo! */
diff --git a/libc/stdio/_fopen.c b/libc/stdio/_fopen.c
index 5bc61cf..0788260 100644
--- a/libc/stdio/_fopen.c
+++ b/libc/stdio/_fopen.c
@@ -64,11 +64,6 @@ FILE attribute_hidden *_stdio_fopen(intptr_t fname_or_mode,
open_mode += (O_RDWR - (O_RDONLY | O_WRONLY));
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Implement glibc ccs option to bind a codeset?
-#warning CONSIDER: Implement glibc mmap option for readonly files?
-#warning CONSIDER: Implement a text mode using custom read/write funcs?
-#endif
#if defined(__UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE__) || defined(__UCLIBC_HAS_FOPEN_LARGEFILE_MODE__) || \
defined(__UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE__)
@@ -110,10 +105,6 @@ FILE attribute_hidden *_stdio_fopen(intptr_t fname_or_mode,
#endif
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Verify fdopen append behavior of glibc.
-#endif
-
if (filedes >= 0) { /* Handle fdopen trickery. */
stream->__filedes = filedes;
/* NOTE: it is insufficient to just check R/W/RW agreement.
diff --git a/libc/stdio/_fpmaxtostr.c b/libc/stdio/_fpmaxtostr.c
index 3580584..b06b25a 100644
--- a/libc/stdio/_fpmaxtostr.c
+++ b/libc/stdio/_fpmaxtostr.c
@@ -210,9 +210,6 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
intptr_t pc_fwi[3*MAX_CALLS];
intptr_t *ppc;
intptr_t *ppc_last;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: The size of exp_buf[] should really be determined by the float constants.
-#endif /* __UCLIBC_MJN3_ONLY__ */
char exp_buf[16];
char buf[BUF_SIZE];
char sign_str[6]; /* Last 2 are for 1st digit + nul. */
@@ -291,9 +288,6 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
{
int i, j;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Clean up defines when hexadecimal float notation is unsupported.
-#endif /* __UCLIBC_MJN3_ONLY__ */
#ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
@@ -375,9 +369,6 @@ ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
do {
uint_fast32_t digit_block = (uint_fast32_t) x;
assert(digit_block < upper_bnd);
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Can rounding be a problem?
-#endif /* __UCLIBC_MJN3_ONLY__ */
x = (x - digit_block) * upper_bnd;
s += dpb;
j = 0;
diff --git a/libc/stdio/_fwrite.c b/libc/stdio/_fwrite.c
index 47860af..2e712c9 100644
--- a/libc/stdio/_fwrite.c
+++ b/libc/stdio/_fwrite.c
@@ -25,9 +25,6 @@ size_t attribute_hidden __stdio_fwrite(const unsigned char * __restrict buffer,
assert(bytes);
if (!__STDIO_STREAM_IS_NBF(stream)) { /* FBF or LBF. */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Try to consolidate some of the code?
-#endif
if (__STDIO_STREAM_IS_FAKE_VSNPRINTF(stream)) {
pending = __STDIO_STREAM_BUFFER_WAVAIL(stream);
if (pending > bytes) {
@@ -66,9 +63,6 @@ size_t attribute_hidden __stdio_fwrite(const unsigned char * __restrict buffer,
if (__STDIO_COMMIT_WRITE_BUFFER(stream)) { /* Commit failed! */
return 0;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Do we want to try again if data now fits in buffer?
-#endif
/* goto RETRY; */
}
}
diff --git a/libc/stdio/_rfill.c b/libc/stdio/_rfill.c
index d61b1a9..943d66c 100644
--- a/libc/stdio/_rfill.c
+++ b/libc/stdio/_rfill.c
@@ -7,10 +7,6 @@
#include "_stdio.h"
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Do we really need a seperate rfill function?
-#endif
-
#ifdef __STDIO_BUFFERS
/* Read some data into the buffer.
diff --git a/libc/stdio/_scanf.c b/libc/stdio/_scanf.c
index f2a9670..d697aed 100644
--- a/libc/stdio/_scanf.c
+++ b/libc/stdio/_scanf.c
@@ -192,10 +192,6 @@ int vscanf(const char * __restrict format, va_list arg)
/**********************************************************************/
#ifdef L_vsscanf
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning WISHLIST: Implement vsscanf for non-buf and no custom stream case.
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
#ifdef __STDIO_BUFFERS
int vsscanf(const char *sp, const char *fmt, va_list ap)
@@ -451,13 +447,6 @@ enum {
#define SPEC_BASE { 16, 16, 16, 8, 10, 10, 0 }
#endif /* __UCLIBC_HAS_FLOATS__ */
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_vfscanf
-/* emit once */
-#warning CONSIDER: Add a '0' flag to eat 0 padding when grouping?
-#endif
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
#define SPEC_FLAGS "*'I"
enum {
@@ -657,9 +646,6 @@ extern int __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc) attribute_hid
/**********************************************************************/
#ifdef L___scan_cookie
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Remove dependence on decpt_str and fake_decpt in stub locale mode.
-#endif
#ifndef __UCLIBC_HAS_LOCALE__
static const char decpt_str[] = ".";
#endif
@@ -883,11 +869,6 @@ int attribute_hidden __psfs_parse_spec(register psfs_t *psfs)
}
psfs->dataargtype = ((int)(p[(sizeof(qual_chars)-2) / 2])) << 8;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we validate that psfs->max_width > 0 in __psfs_parse_spec()? It would avoid whitespace consumption...
-#warning CONSIDER: Should INT_MAX be a valid width (%c/%C)? See __psfs_parse_spec().
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
p = spec_chars;
do {
if (*psfs->fmt == *p) {
@@ -1136,9 +1117,6 @@ int VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg)
psfs_t psfs;
int i;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix MAX_DIGITS. We do not do binary, so...!
-#endif
#define MAX_DIGITS 65 /* Allow one leading 0. */
unsigned char buf[MAX_DIGITS+2];
#ifdef L_vfscanf
@@ -1149,9 +1127,6 @@ int VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg)
unsigned char zero_conversions = 1;
__STDIO_AUTO_THREADLOCK_VAR;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Make checking of the format string in C locale an option.
-#endif
/* To support old programs, don't check mb validity if in C locale. */
#if defined(__UCLIBC_HAS_LOCALE__) && !defined(L_vfwscanf)
/* ANSI/ISO C99 requires format string to be a valid multibyte string
@@ -1312,9 +1287,6 @@ int VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg)
}
if (psfs.conv_num == CONV_n) {
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should %n count as a conversion as far as EOF return value?
-#endif
/* zero_conversions = 0; */
if (psfs.store) {
_store_inttype(psfs.cur_ptr, psfs.dataargtype,
@@ -1767,19 +1739,12 @@ int attribute_hidden __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc)
#ifdef __UCLIBC_HAS_FLOATS__
int exp_adjust = 0;
#endif
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix MAX_DIGITS. We do not do binary, so...!
-#warning TODO: Fix buf!
-#endif
#define MAX_DIGITS 65 /* Allow one leading 0. */
unsigned char buf[MAX_DIGITS+2+ 100];
unsigned char usflag, base;
unsigned char nonzero = 0;
unsigned char seendigit = 0;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: What should be returned for an invalid conversion specifier?
-#endif
#ifndef __UCLIBC_HAS_FLOATS__
if (psfs->conv_num > CONV_i) { /* floating point */
goto DONE;
@@ -1812,10 +1777,6 @@ int attribute_hidden __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc)
return 0;
}
} while (1);
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we require a 0x prefix and disallow +/- for pointer %p?
-#endif /* __UCLIBC_MJN3_ONLY__ */
}
__scan_getc(sc);
@@ -1871,10 +1832,6 @@ int attribute_hidden __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc)
int nblk1, nblk2, nbmax, lastblock, pass, i;
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we initalize the grouping blocks in __init_scan_cookie()?
-#endif /* __UCLIBC_MJN3_ONLY__ */
nbmax = nblk2 = nblk1 = *p;
if (*++p) {
nblk2 = *p;
@@ -1903,9 +1860,6 @@ int attribute_hidden __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc)
if (sc->cc == '0') {
seendigit = 1;
*b++ = '0'; /* Store the first 0. */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should leading 0s be skipped before digit grouping? (printf 0 pad)
-#endif /* __UCLIBC_MJN3_ONLY__ */
#if 0
do { /* But ignore all subsequent 0s. */
__scan_getc(sc);
@@ -2182,9 +2136,6 @@ int attribute_hidden __psfs_do_numeric(psfs_t *psfs, struct scan_cookie *sc)
__scan_getc(sc);
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix MAX_EXP_DIGITS!
-#endif
#define MAX_EXP_DIGITS 20
assert(seendigit);
seendigit = 0;
diff --git a/libc/stdio/_vfprintf.c b/libc/stdio/_vfprintf.c
index a795f49..fc5d3ff 100644
--- a/libc/stdio/_vfprintf.c
+++ b/libc/stdio/_vfprintf.c
@@ -130,14 +130,6 @@
/**********************************************************************/
-#ifdef __UCLIBC_MJN3_ONLY__
-# ifdef L_register_printf_function
-/* emit only once */
-# warning WISHLIST: Make MAX_USER_SPEC configurable?
-# warning WISHLIST: Make MAX_ARGS_PER_SPEC configurable?
-# endif
-#endif
-
#ifdef __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__
# define MAX_USER_SPEC 10
# define MAX_ARGS_PER_SPEC 5
@@ -460,9 +452,6 @@ int attribute_hidden _ppfs_init(register ppfs_t *ppfs, const char *fmt0)
--ppfs->maxposarg; /* set to -1 */
#endif
ppfs->fmtpos = fmt0;
-#ifdef __UCLIBC_MJN3_ONLY__
-# warning TODO: Make checking of the format string in C locale an option.
-#endif
#ifdef __UCLIBC_HAS_LOCALE__
/* To support old programs, don't check mb validity if in C locale. */
if (__UCLIBC_CURLOCALE->encoding != __ctype_encoding_7_bit) {
@@ -878,11 +867,6 @@ int attribute_hidden _ppfs_parsespec(ppfs_t *ppfs)
} else {
if (maxposarg > 0) {
# ifdef __UCLIBC_HAS_PRINTF_M_SPEC__
-# ifdef __UCLIBC_MJN3_ONLY__
-# warning TODO: Support prec and width for %m when positional args used
- /* Actually, positional arg processing will fail in general
- * for specifiers that don't require an arg. */
-# endif
if (*fmt == 'm') {
goto PREC_WIDTH;
}
@@ -1414,9 +1398,6 @@ static int _do_one_spec(FILE * __restrict stream,
int numfill = 0; /* TODO: fix */
int prefix_num = PREFIX_NONE;
char padchar = ' ';
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Determine appropriate buf size.
-#endif
/* TODO: buf needs to be big enough for any possible error return strings
* and also for any locale-grouped long long integer strings generated.
* This should be large enough for any of the current archs/locales, but
@@ -1468,11 +1449,6 @@ static int _do_one_spec(FILE * __restrict stream,
if (ppfs->conv_num <= CONV_i) { /* pointer or (un)signed int */
alphacase = __UIM_LOWER;
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L__vfprintf_internal
-#warning CONSIDER: Should we ignore these flags if stub locale? What about custom specs?
-#endif
-#endif
base = spec_base[(int)(ppfs->conv_num - CONV_p)];
if (base == 10) {
if (PRINT_INFO_FLAG_VAL(&(ppfs->info),group)) {
@@ -1497,11 +1473,6 @@ static int _do_one_spec(FILE * __restrict stream,
if (ppfs->info.prec < 0) { /* Ignore '0' flag if prec specified. */
padchar = ppfs->info.pad;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L__vfprintf_internal
-#warning CONSIDER: If using outdigits and/or grouping, how should we interpret precision?
-#endif
-#endif
s = _uintmaxtostr(buf + sizeof(buf) - 1,
(uintmax_t)
_load_inttype(ppfs->conv_num == CONV_p ? PA_FLAG_LONG : *argtype & __PA_INTMASK,
@@ -1654,9 +1625,6 @@ static int _do_one_spec(FILE * __restrict stream,
} else if (ppfs->conv_num <= CONV_s) { /* char or string */
if (ppfs->conv_num == CONV_s) { /* string */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix %s for _vfwprintf_internal... output upto illegal sequence?
-#endif
s = *((char **) (*argptr));
if (s) {
#ifdef __UCLIBC_HAS_PRINTF_M_SPEC__
@@ -1722,11 +1690,6 @@ static int _do_one_spec(FILE * __restrict stream,
return -1;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L__vfprintf_internal
-#warning CONSIDER: If using outdigits and/or grouping, how should we pad?
-#endif
-#endif
{
size_t t;
diff --git a/libc/stdio/_wfwrite.c b/libc/stdio/_wfwrite.c
index 517e3a7..65b38e7 100644
--- a/libc/stdio/_wfwrite.c
+++ b/libc/stdio/_wfwrite.c
@@ -12,11 +12,6 @@
#error wide function when no wide support!
#endif
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning TODO: Fix prototype.
-#endif
-
-
size_t attribute_hidden _wstdio_fwrite(const wchar_t *__restrict ws, size_t n,
register FILE *__restrict stream)
{
diff --git a/libc/stdio/fclose.c b/libc/stdio/fclose.c
index 3417b26..9631ebb 100644
--- a/libc/stdio/fclose.c
+++ b/libc/stdio/fclose.c
@@ -87,9 +87,6 @@ int fclose(register FILE *stream)
__STDIO_AUTO_THREADUNLOCK(stream);
__STDIO_STREAM_FREE_BUFFER(stream);
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: inefficient - locks and unlocks twice and walks whole list
-#endif
#if defined(__UCLIBC_HAS_THREADS__) && defined(__STDIO_BUFFERS)
/* inefficient - locks/unlocks twice and walks whole list */
__STDIO_OPENLIST_INC_DEL_CNT;
diff --git a/libc/stdio/fcloseall.c b/libc/stdio/fcloseall.c
index 4d78b37..ab8248c 100644
--- a/libc/stdio/fcloseall.c
+++ b/libc/stdio/fcloseall.c
@@ -27,17 +27,11 @@ int fcloseall (void)
__STDIO_OPENLIST_INC_USE;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: should probably have a get_head() operation
-#endif
__STDIO_THREADLOCK_OPENLIST_ADD;
f = _stdio_openlist;
__STDIO_THREADUNLOCK_OPENLIST_ADD;
while (f) {
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: should probably have a get_next() operation
-#endif
FILE *n = f->__nextopen;
__STDIO_AUTO_THREADLOCK_VAR;
diff --git a/libc/stdio/fflush.c b/libc/stdio/fflush.c
index cf0356a..7c05ea5 100644
--- a/libc/stdio/fflush.c
+++ b/libc/stdio/fflush.c
@@ -10,10 +10,6 @@
#ifdef __DO_UNLOCKED
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning WISHLIST: Add option to test for undefined behavior of fflush.
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
/* Even if the stream is set to user-locking, we still need to lock
* when all (lbf) writing streams are flushed. */
@@ -34,16 +30,10 @@ void attribute_hidden _stdio_openlist_dec_use(void)
FILE *n;
FILE *stream;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: As an optimization, we could unlock after we move past the head.
-#endif
/* Grab the openlist add lock since we might change the head of the list. */
__STDIO_THREADLOCK_OPENLIST_ADD;
for (stream = _stdio_openlist; stream; stream = n) {
n = stream->__nextopen;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: fix for nonatomic
-#endif
if ((stream->__modeflags & (__FLAG_READONLY|__FLAG_WRITEONLY|__FLAG_FAILED_FREOPEN))
== (__FLAG_READONLY|__FLAG_WRITEONLY)
) { /* The file was closed and should be removed from the list. */
@@ -70,9 +60,6 @@ int fflush_unlocked(register FILE *stream)
#ifdef __STDIO_BUFFERS
int retval = 0;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning REMINDER: should probably define a modeflags type
-#endif
unsigned short bufmask = __FLAG_LBF;
#ifndef NDEBUG
diff --git a/libc/stdio/fgets.c b/libc/stdio/fgets.c
index bc710c7..0a6d31e 100644
--- a/libc/stdio/fgets.c
+++ b/libc/stdio/fgets.c
@@ -19,9 +19,6 @@ char *fgets_unlocked(char *__restrict s, int n,
__STDIO_STREAM_VALIDATE(stream);
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: What should fgets do if n <= 0?
-#endif /* __UCLIBC_MJN3_ONLY__ */
/* Should we assert here? Or set errno? Or just fail... */
if (n <= 0) {
/* __set_errno(EINVAL); */
@@ -48,9 +45,6 @@ char *fgets_unlocked(char *__restrict s, int n,
}
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: If n==1 and not at EOF, should fgets return an empty string?
-#endif /* __UCLIBC_MJN3_ONLY__ */
if (p > s) {
*p = 0;
return s;
diff --git a/libc/stdio/fputc.c b/libc/stdio/fputc.c
index 7876d77..d1b7cdc 100644
--- a/libc/stdio/fputc.c
+++ b/libc/stdio/fputc.c
@@ -41,12 +41,7 @@ int __fputc_unlocked(int c, register FILE *stream)
) {
goto BAD;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Should we fail if the commit fails but we now have room?
-#endif
-
__STDIO_STREAM_BUFFER_ADD(stream, ((unsigned char) c));
-
if (__STDIO_STREAM_IS_LBF(stream)) {
if ((((unsigned char) c) == '\n')
&& __STDIO_COMMIT_WRITE_BUFFER(stream)) {
diff --git a/libc/stdio/fread.c b/libc/stdio/fread.c
index d2fcc70..f8bea5a 100644
--- a/libc/stdio/fread.c
+++ b/libc/stdio/fread.c
@@ -61,10 +61,6 @@ size_t fread_unlocked(void * __restrict ptr, size_t size, size_t nmemb,
__STDIO_FLUSH_LBF_STREAMS;
}
#endif
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: should we refill and read from the buffer sometimes?
-#endif
while ((avail = __stdio_READ(stream, buffer, todo)) > 0) {
buffer += avail;
if (!(todo -= avail)) {
diff --git a/libc/stdio/ftrylockfile.c b/libc/stdio/ftrylockfile.c
index 0d2e156..c2f49ca 100644
--- a/libc/stdio/ftrylockfile.c
+++ b/libc/stdio/ftrylockfile.c
@@ -7,10 +7,6 @@
#include "_stdio.h"
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: What should this return when not threading?
-#endif
-
int ftrylockfile(FILE *stream)
{
__STDIO_STREAM_VALIDATE(stream);
diff --git a/libc/stdio/perror.c b/libc/stdio/perror.c
index 8b943e4..d36d75b 100644
--- a/libc/stdio/perror.c
+++ b/libc/stdio/perror.c
@@ -7,11 +7,6 @@
#include "_stdio.h"
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Increase buffer size for error message (non-%m case)?
-#endif
-
void perror(register const char *s)
{
/* If the program is calling perror, it's a safe bet that printf and
diff --git a/libc/stdio/popen.c b/libc/stdio/popen.c
index e1b1d40..39cf973 100644
--- a/libc/stdio/popen.c
+++ b/libc/stdio/popen.c
@@ -22,10 +22,6 @@
#include <sys/wait.h>
#include <bits/uClibc_mutex.h>
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning "hmm... susv3 says Pipe streams are byte-oriented."
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
#ifndef VFORK_LOCK
__UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER);
# define VFORK_LOCK __UCLIBC_MUTEX_LOCK(mylock)
diff --git a/libc/stdio/ungetc.c b/libc/stdio/ungetc.c
index ea4edd2..14c8d95 100644
--- a/libc/stdio/ungetc.c
+++ b/libc/stdio/ungetc.c
@@ -31,9 +31,6 @@ int ungetc(int c, register FILE *stream)
__STDIO_AUTO_THREADLOCK(stream);
__STDIO_STREAM_VALIDATE(stream);
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning CONSIDER: Make fast ungetc an option?
-#endif
#ifdef __UCLIBC_HAS_STDIO_GETC_MACRO__
/* If buffered narrow reading with no ungot slots filled, and if not
* ungetting a different char than the one last read from the buffer,
diff --git a/libc/stdio/vasprintf.c b/libc/stdio/vasprintf.c
index a901ee8..5cd48ec 100644
--- a/libc/stdio/vasprintf.c
+++ b/libc/stdio/vasprintf.c
@@ -12,12 +12,6 @@
#include <stdarg.h>
#include <bits/uClibc_va_copy.h>
-
-#ifdef __UCLIBC_MJN3_ONLY__
-/* Do the memstream stuff inline to avoid fclose and the openlist? */
-#warning CONSIDER: avoid open_memstream call?
-#endif
-
#ifndef __STDIO_HAS_VSNPRINTF
#warning Skipping vasprintf since no vsnprintf!
#else
diff --git a/libc/stdio/vsnprintf.c b/libc/stdio/vsnprintf.c
index 31adc52..4dbf6f0 100644
--- a/libc/stdio/vsnprintf.c
+++ b/libc/stdio/vsnprintf.c
@@ -8,11 +8,6 @@
#include "_stdio.h"
#include <stdarg.h>
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning WISHLIST: Implement vsnprintf for non-buffered and no custom stream case.
-#endif /* __UCLIBC_MJN3_ONLY__ */
-
#ifdef __STDIO_BUFFERS
/* NB: we can still have __USE_OLD_VFPRINTF__ defined in this case! */
diff --git a/libc/stdlib/drand48-iter.c b/libc/stdlib/drand48-iter.c
index b4b7b33..1ddf402 100644
--- a/libc/stdlib/drand48-iter.c
+++ b/libc/stdlib/drand48-iter.c
@@ -26,9 +26,6 @@
/* Global state for non-reentrant functions. */
struct drand48_data __libc_drand48_data;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning turn int __drand48_iterate into void
-#endif /* __UCLIBC_MJN3_ONLY__ */
int __drand48_iterate (unsigned short int xsubi[3], struct drand48_data *buffer)
{
uint64_t X;
diff --git a/libc/stdlib/stdlib.c b/libc/stdlib/stdlib.c
index 6c887ea..1f64564 100644
--- a/libc/stdlib/stdlib.c
+++ b/libc/stdlib/stdlib.c
@@ -70,12 +70,6 @@
#else /* __UCLIBC_HAS_LOCALE__ */
-#ifdef __UCLIBC_MJN3_ONLY__
-#ifdef L_mblen
-/* emit only once */
-#warning devel checks
-#endif
-#endif
#ifdef __CTYPE_HAS_8_BIT_LOCALES
#error __CTYPE_HAS_8_BIT_LOCALES is defined!
#endif
@@ -822,9 +816,6 @@ size_t _stdlib_mb_cur_max(void)
return __UCLIBC_CURLOCALE->mb_cur_max;
#else
#ifdef __CTYPE_HAS_8_BIT_LOCALES
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning need to change this when/if transliteration is implemented
-#endif
#endif
return 1;
#endif
diff --git a/libc/string/_collate.c b/libc/string/_collate.c
index 93501b8..b57b4c5 100644
--- a/libc/string/_collate.c
+++ b/libc/string/_collate.c
@@ -172,10 +172,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
cs->ru_pushed = 0;
goto POSITION_SKIP;
}
-
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning should we walk pendings backwards?
-#endif
if (cs->cip) { /* possible pending weight */
if ((r = *(cs->cip++)) == 0) {
cs->cip = NULL;
@@ -267,9 +263,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
} while (1);
} else if (r == 0) { /* illegal, undefined, or part of a range */
if ((CUR_COLLATE->range_count)
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning .. need to introduce range as a collating item?
-#endif
&& (((__uwchar_t)(WC - CUR_COLLATE->range_low)) <= CUR_COLLATE->range_count)
) { /* part of a range */
/* Note: cs->colitem = 0 already. */
@@ -288,9 +281,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
assert(ri != 0); /* implicit undefined isn't supported */
TRACE((" found explicit UNDEFINED\n"));
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning right now single weight locales do not support ..
-#endif
if (CUR_COLLATE->num_weights == 1) {
TRACE((" single weight UNDEFINED\n"));
cs->weightidx = RANGE_IDX;
@@ -333,9 +323,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
FOUND:
ri = CUR_COLLATE->index2ruleidx[cs->colitem - 1];
TRACE((" ri=%d ", ri));
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning make sure this is correct
-#endif
if (!ri) {
TRACE(("NOT IN THIS LOCALE\n"));
goto UNDEFINED;
@@ -344,9 +331,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
RANGE_SKIP_TO:
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning ignoreables probably should not interrupt backwards processing, but this is wrong
-#endif
/* if (!(ru & WEIGHT_MASK)) { */
/* TRACE(("IGNORE\n")); */
/* cs->s += n; */
@@ -368,9 +352,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
cs->bp = malloc(cs->bb_size + 128);
if (!cs->bp) {
/* __set_errno(ENOMEM); */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning what to do here?
-#endif
cs->weight = 0;
return;
}
@@ -380,9 +361,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
cs->bp = realloc(cs->back_buf, cs->bb_size + 128);
if (!cs->bp) {
/* __set_errno(ENOMEM); */
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning what to do here?
-#endif
cs->weight = 0;
return;
}
@@ -430,9 +408,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
assert(ru & WEIGHT_MASK);
cs->ru_pushed = ru;
cs->weight = cs->position;
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning devel code
-#endif
cs->position = 0; /* reset to reduce size for strcoll? */
cs->s += n;
cs->weightidx = RANGE_IDX;
@@ -453,9 +428,6 @@ static void next_weight(col_state_t *cs, int pass __LOCALE_PARAM )
cs->rule = ru & RULE_MASK;
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning for pending we only want the weight... _not_ the rule
-#endif
if (!cs->weightidx) { /* ignore */
continue;
}
@@ -547,10 +519,6 @@ size_t __XL_NPP(wcsxfrm)(wchar_t *__restrict ws1, const wchar_t *__restrict ws2,
return __wcslcpy(ws1, ws2, n);
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning handle empty string as a special case
-#endif
-
count = pass = 0;
do { /* loop through the weights levels */
init_col_state(&cs, ws2);
@@ -630,10 +598,6 @@ size_t __XL_NPP(strxfrm)(char *__restrict ws1, const char *__restrict ws2, size_
return strlcpy(ws1, ws2, n);
}
-#ifdef __UCLIBC_MJN3_ONLY__
-#warning handle empty string as a special case
-#endif
-
inc = count = pass = 0;
do { /* loop through the weights levels */
init_col_state(&cs, ws2);
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch 1.0 updated. v1.0.7-6-g312f482
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
18 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 312f482d395b591398296b5472a3884a12716cbd (commit)
from c807e03c88504cf01508daa6dbae9e93dacfcf3c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 312f482d395b591398296b5472a3884a12716cbd
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sat Oct 17 11:17:07 2015 +0200
lm32: add new architecture
Add support for FPGA systems from Lattice Semiconductor
http://www.latticesemi.com
Merge https://github.com/m-labs/uclibc-lm32.git
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 2 +
extra/Configs/Config.in | 8 +++
extra/Configs/{Config.nios => Config.lm32} | 6 +-
extra/Configs/defconfigs/lm32 | 1 +
libc/sysdeps/linux/{alpha => lm32}/Makefile | 0
.../{Makefile.in => linux/lm32/Makefile.arch} | 3 +-
libc/sysdeps/linux/lm32/__longjmp.S | 40 +++++++++++++
libc/sysdeps/linux/{i960 => lm32}/bits/endian.h | 4 +-
.../linux/{microblaze => lm32}/bits/fcntl.h | 9 +--
libc/sysdeps/linux/lm32/bits/kernel_stat.h | 50 +++++++++++++++++
libc/sysdeps/linux/lm32/bits/kernel_types.h | 37 ++++++++++++
libc/sysdeps/linux/lm32/bits/setjmp.h | 24 ++++++++
libc/sysdeps/linux/{or1k => lm32}/bits/stackinfo.h | 4 +-
libc/sysdeps/linux/lm32/bits/syscalls.h | 59 ++++++++++++++++++++
.../{v850 => lm32}/bits/uClibc_arch_features.h | 4 +-
.../linux/{common => lm32}/bits/uClibc_page.h | 8 +--
libc/sysdeps/linux/{h8300 => lm32}/bits/wordsize.h | 0
libc/sysdeps/linux/lm32/clone.S | 52 +++++++++++++++++
libc/sysdeps/linux/lm32/crt1.S | 21 +++++++
libc/sysdeps/linux/lm32/crti.S | 17 ++++++
libc/sysdeps/linux/lm32/crtn.S | 11 ++++
libc/sysdeps/linux/lm32/setjmp.S | 53 ++++++++++++++++++
.../linux/{microblaze => lm32}/sys/procfs.h | 24 ++------
.../linux/{microblaze => lm32}/sys/ucontext.h | 7 ++-
libc/sysdeps/linux/{powerpc => lm32}/sys/user.h | 5 +-
libc/sysdeps/linux/lm32/vfork.S | 42 ++++++++++++++
26 files changed, 446 insertions(+), 45 deletions(-)
copy extra/Configs/{Config.nios => Config.lm32} (87%)
create mode 100644 extra/Configs/defconfigs/lm32
copy libc/sysdeps/linux/{alpha => lm32}/Makefile (100%)
copy libc/sysdeps/{Makefile.in => linux/lm32/Makefile.arch} (75%)
create mode 100644 libc/sysdeps/linux/lm32/__longjmp.S
copy libc/sysdeps/linux/{i960 => lm32}/bits/endian.h (92%)
copy libc/sysdeps/linux/{microblaze => lm32}/bits/fcntl.h (96%)
create mode 100644 libc/sysdeps/linux/lm32/bits/kernel_stat.h
create mode 100644 libc/sysdeps/linux/lm32/bits/kernel_types.h
create mode 100644 libc/sysdeps/linux/lm32/bits/setjmp.h
copy libc/sysdeps/linux/{or1k => lm32}/bits/stackinfo.h (91%)
create mode 100644 libc/sysdeps/linux/lm32/bits/syscalls.h
copy libc/sysdeps/linux/{v850 => lm32}/bits/uClibc_arch_features.h (91%)
copy libc/sysdeps/linux/{common => lm32}/bits/uClibc_page.h (76%)
copy libc/sysdeps/linux/{h8300 => lm32}/bits/wordsize.h (100%)
create mode 100644 libc/sysdeps/linux/lm32/clone.S
create mode 100644 libc/sysdeps/linux/lm32/crt1.S
create mode 100644 libc/sysdeps/linux/lm32/crti.S
create mode 100644 libc/sysdeps/linux/lm32/crtn.S
create mode 100644 libc/sysdeps/linux/lm32/setjmp.S
copy libc/sysdeps/linux/{microblaze => lm32}/sys/procfs.h (85%)
copy libc/sysdeps/linux/{microblaze => lm32}/sys/ucontext.h (86%)
copy libc/sysdeps/linux/{powerpc => lm32}/sys/user.h (89%)
create mode 100644 libc/sysdeps/linux/lm32/vfork.S
diff --git a/Rules.mak b/Rules.mak
index 4ba6fc5..558cadf 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -298,6 +298,7 @@ CPU_CFLAGS-y += $(CFLAG_-fmerge-all-constants)
ifeq ($(UCLIBC_HAS_SOFT_FLOAT),y)
ifneq ($(TARGET_ARCH),bfin)
+ifneq ($(TARGET_ARCH),lm32)
ifneq ($(TARGET_ARCH),nios2)
ifneq ($(TARGET_ARCH),sh)
ifneq ($(TARGET_ARCH),c6x)
@@ -309,6 +310,7 @@ endif
endif
endif
endif
+endif
$(eval $(call check-gcc-var,-std=gnu99))
CPU_CFLAGS-y += $(CFLAG_-std=gnu99)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index c954250..9737043 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -28,6 +28,7 @@ choice
default TARGET_i386 if DESIRED_TARGET_ARCH = "i386"
default TARGET_i960 if DESIRED_TARGET_ARCH = "i960"
default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64"
+ default TARGET_lm32 if DESIRED_TARGET_ARCH = "lm32"
default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"
default TARGET_metag if DESIRED_TARGET_ARCH = "metag"
default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze"
@@ -90,6 +91,9 @@ config TARGET_i386
config TARGET_ia64
bool "ia64"
+config TARGET_lm32
+ bool "lm32"
+
config TARGET_m68k
bool "m68k"
@@ -188,6 +192,10 @@ if TARGET_ia64
source "extra/Configs/Config.ia64"
endif
+if TARGET_lm32
+source "extra/Configs/Config.lm32"
+endif
+
if TARGET_m68k
source "extra/Configs/Config.m68k"
endif
diff --git a/extra/Configs/Config.nios b/extra/Configs/Config.lm32
similarity index 87%
copy from extra/Configs/Config.nios
copy to extra/Configs/Config.lm32
index 639cd35..8077267 100644
--- a/extra/Configs/Config.nios
+++ b/extra/Configs/Config.lm32
@@ -5,13 +5,13 @@
config TARGET_ARCH
string
- default "nios"
+ default "lm32"
config FORCE_OPTIONS_FOR_ARCH
bool
default y
- select ARCH_LITTLE_ENDIAN
+ select ARCH_BIG_ENDIAN
select ARCH_HAS_NO_MMU
select ARCH_HAS_NO_LDSO
- select ARCH_HAS_DEPRECATED_SYSCALLS
select HAVE_NO_PIC
+ select ARCH_HAS_DEPRECATED_SYSCALLS
diff --git a/extra/Configs/defconfigs/lm32 b/extra/Configs/defconfigs/lm32
new file mode 100644
index 0000000..63fb19d
--- /dev/null
+++ b/extra/Configs/defconfigs/lm32
@@ -0,0 +1 @@
+TARGET_lm32=y
diff --git a/libc/sysdeps/linux/alpha/Makefile b/libc/sysdeps/linux/lm32/Makefile
similarity index 100%
copy from libc/sysdeps/linux/alpha/Makefile
copy to libc/sysdeps/linux/lm32/Makefile
diff --git a/libc/sysdeps/Makefile.in b/libc/sysdeps/linux/lm32/Makefile.arch
similarity index 75%
copy from libc/sysdeps/Makefile.in
copy to libc/sysdeps/linux/lm32/Makefile.arch
index 686cb72..eed9e7b 100644
--- a/libc/sysdeps/Makefile.in
+++ b/libc/sysdeps/linux/lm32/Makefile.arch
@@ -5,4 +5,5 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-include $(top_srcdir)libc/sysdeps/linux/Makefile.in
+CSRC :=
+SSRC := clone.S setjmp.S __longjmp.S vfork.S
diff --git a/libc/sysdeps/linux/lm32/__longjmp.S b/libc/sysdeps/linux/lm32/__longjmp.S
new file mode 100644
index 0000000..cbb55f0
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/__longjmp.S
@@ -0,0 +1,40 @@
+#define _SETJMP_H
+#define _ASM
+#include <bits/setjmp.h>
+
+#include <libc-symbols.h>
+
+.text
+.global C_SYMBOL_NAME(__longjmp)
+.type C_SYMBOL_NAME(__longjmp),@function
+.align 4
+
+C_SYMBOL_NAME(__longjmp):
+ /* load registers relative from r5 (arg0) */
+ lw r11, (r1+0)
+ lw r12, (r1+4)
+ lw r13, (r1+8)
+ lw r14, (r1+12)
+ lw r15, (r1+16)
+ lw r16, (r1+20)
+ lw r17, (r1+24)
+ lw r18, (r1+28)
+ lw r19, (r1+32)
+ lw r20, (r1+36)
+ lw r21, (r1+40)
+ lw r22, (r1+44)
+ lw r23, (r1+48)
+ lw r24, (r1+52)
+ lw r25, (r1+56)
+ lw gp, (r1+60)
+ lw fp, (r1+64)
+ lw sp, (r1+68)
+ lw ra, (r1+72)
+
+ mv r1, r2 /* copy val */
+ bne r1, r0, 1f
+ mvi r1, 1 /* val was zero, set it to 1 */
+1:
+ ret
+
+libc_hidden_def(__longjmp)
diff --git a/libc/sysdeps/linux/i960/bits/endian.h b/libc/sysdeps/linux/lm32/bits/endian.h
similarity index 92%
copy from libc/sysdeps/linux/i960/bits/endian.h
copy to libc/sysdeps/linux/lm32/bits/endian.h
index e2b1316..1acee18 100644
--- a/libc/sysdeps/linux/i960/bits/endian.h
+++ b/libc/sysdeps/linux/lm32/bits/endian.h
@@ -10,6 +10,4 @@
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-
+#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/libc/sysdeps/linux/microblaze/bits/fcntl.h b/libc/sysdeps/linux/lm32/bits/fcntl.h
similarity index 96%
copy from libc/sysdeps/linux/microblaze/bits/fcntl.h
copy to libc/sysdeps/linux/lm32/bits/fcntl.h
index e7651e8..44e8f3f 100644
--- a/libc/sysdeps/linux/microblaze/bits/fcntl.h
+++ b/libc/sysdeps/linux/lm32/bits/fcntl.h
@@ -13,8 +13,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
@@ -98,8 +99,8 @@
# define F_NOTIFY 1026 /* Request notfications on a directory. */
# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
close-on-exit set on new fd. */
-# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
-# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */
+# define F_SETPIPE_SZ 1031 /* Set of pipe page size array */
+# define F_GETPIPE_SZ 1032 /* Get of pipe page size array */
#endif
/* For F_[GET|SET]FL. */
diff --git a/libc/sysdeps/linux/lm32/bits/kernel_stat.h b/libc/sysdeps/linux/lm32/bits/kernel_stat.h
new file mode 100644
index 0000000..c998b56
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/kernel_stat.h
@@ -0,0 +1,50 @@
+#ifndef _BITS_STAT_STRUCT_H
+#define _BITS_STAT_STRUCT_H
+
+#ifndef _LIBC
+#error bits/kernel_stat.h is for internal uClibc use only!
+#endif
+
+struct kernel_stat
+{
+ unsigned long st_dev; /* Device. */
+ unsigned long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long st_rdev; /* Device number, if device. */
+ unsigned long __pad1;
+ long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
+struct kernel_stat64
+{
+ unsigned long long st_dev; /* Device. */
+ unsigned long long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad1;
+ long long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ long long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
+#endif /* _BITS_STAT_STRUCT_H */
diff --git a/libc/sysdeps/linux/lm32/bits/kernel_types.h b/libc/sysdeps/linux/lm32/bits/kernel_types.h
new file mode 100644
index 0000000..2c3c6df
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/kernel_types.h
@@ -0,0 +1,37 @@
+#ifndef __ASM_GENERIC_POSIX_TYPES_H
+#define __ASM_GENERIC_POSIX_TYPES_H
+
+typedef unsigned long __kernel_ino_t;
+typedef unsigned int __kernel_mode_t;
+typedef unsigned long __kernel_nlink_t;
+typedef long __kernel_off_t;
+typedef int __kernel_pid_t;
+typedef int __kernel_ipc_pid_t;
+typedef unsigned int __kernel_uid_t;
+typedef unsigned int __kernel_gid_t;
+typedef unsigned int __kernel_size_t;
+typedef int __kernel_ssize_t;
+typedef int __kernel_ptrdiff_t;
+typedef long __kernel_time_t;
+typedef long __kernel_suseconds_t;
+typedef long __kernel_clock_t;
+typedef int __kernel_timer_t;
+typedef int __kernel_clockid_t;
+typedef int __kernel_daddr_t;
+typedef char * __kernel_caddr_t;
+typedef unsigned short __kernel_uid16_t;
+typedef unsigned short __kernel_gid16_t;
+typedef __kernel_uid_t __kernel_uid32_t;
+typedef __kernel_gid_t __kernel_gid32_t;
+
+typedef __kernel_uid_t __kernel_old_uid_t;
+typedef __kernel_gid_t __kernel_old_gid_t;
+typedef unsigned int __kernel_old_dev_t;
+
+typedef long long __kernel_loff_t;
+
+typedef struct {
+ int val[2];
+} __kernel_fsid_t;
+
+#endif /* __ASM_GENERIC_POSIX_TYPES_H */
diff --git a/libc/sysdeps/linux/lm32/bits/setjmp.h b/libc/sysdeps/linux/lm32/bits/setjmp.h
new file mode 100644
index 0000000..6798083
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/setjmp.h
@@ -0,0 +1,24 @@
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+#ifndef _ASM
+typedef struct
+ {
+ int __regs[15]; /* callee-saved registers r11-r25 */
+ void *__gp; /* global pointer */
+ void *__fp; /* frame pointer */
+ void *__sp; /* stack pointer */
+ void *__ra; /* return address */
+ } __jmp_buf[1];
+#endif
+
+/* Test if longjmp to JMPBUF would unwind the frame
+ containing a local variable at ADDRESS. */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+ ((void *) (address) < (void *) (jmpbuf)[0].__sp)
+
+#endif
diff --git a/libc/sysdeps/linux/or1k/bits/stackinfo.h b/libc/sysdeps/linux/lm32/bits/stackinfo.h
similarity index 91%
copy from libc/sysdeps/linux/or1k/bits/stackinfo.h
copy to libc/sysdeps/linux/lm32/bits/stackinfo.h
index 12d46a0..695616e 100644
--- a/libc/sysdeps/linux/or1k/bits/stackinfo.h
+++ b/libc/sysdeps/linux/lm32/bits/stackinfo.h
@@ -17,12 +17,12 @@
02111-1307 USA. */
/* This file contains a bit of information about the stack allocation
- of the processor. */
+ of the processor. Since there is no general truth we can't say
+ anything here. */
#ifndef _STACKINFO_H
#define _STACKINFO_H 1
-/* On or1k the stack grows down. */
#define _STACK_GROWS_DOWN 1
#endif /* stackinfo.h */
diff --git a/libc/sysdeps/linux/lm32/bits/syscalls.h b/libc/sysdeps/linux/lm32/bits/syscalls.h
new file mode 100644
index 0000000..2956954
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/syscalls.h
@@ -0,0 +1,59 @@
+#ifndef _BITS_SYSCALLS_H
+#define _BITS_SYSCALLS_H
+#ifndef _SYSCALL_H
+# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
+#endif
+
+
+#ifndef __ASSEMBLER__
+
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ LOAD_ARGS_##nr (args); \
+ register int __ret __asm__("r1"); \
+ register int _scno __asm__("r8") = name; \
+ __asm__ __volatile__("scall" \
+ : "=r" (__ret) \
+ : "r"(_scno) ASM_ARGS_##nr \
+ : __SYSCALL_CLOBBERS ); \
+ __ret; \
+ })
+
+/* original port had ret >= -125 ?! */
+#define LOAD_ARGS_0() do { } while(0)
+#define ASM_ARGS_0
+#define LOAD_ARGS_1(a1) \
+ int _a1 = (int)(a1); \
+ LOAD_ARGS_0(); \
+ register int __a1 __asm__("r1") = _a1
+#define ASM_ARGS_1 ASM_ARGS_0, "0"(__a1)
+#define LOAD_ARGS_2(a1, a2) \
+ int _a2 = (int)(a2); \
+ LOAD_ARGS_1(a1); \
+ register int __a2 __asm__("r2") = _a2
+#define ASM_ARGS_2 ASM_ARGS_1, "r"(__a2)
+#define LOAD_ARGS_3(a1, a2, a3) \
+ int _a3 = (int)(a3); \
+ LOAD_ARGS_2(a1, a2); \
+ register int __a3 __asm__("r3") = _a3
+#define ASM_ARGS_3 ASM_ARGS_2, "r"(__a3)
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ int _a4 = (int)(a4); \
+ LOAD_ARGS_3(a1, a2, a3); \
+ register int __a4 __asm__("r4") = _a4
+#define ASM_ARGS_4 ASM_ARGS_3, "r"(__a4)
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ int _a5 = (int)(a5); \
+ LOAD_ARGS_4(a1, a2, a3, a4); \
+ register int __a5 __asm__("r5") = _a5
+#define ASM_ARGS_5 ASM_ARGS_4, "r"(__a5)
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ int _a6 = (int)(a6); \
+ LOAD_ARGS_5(a1, a2, a3, a4, a5); \
+ register int __a6 __asm__("r6") = _a6
+#define ASM_ARGS_6 ASM_ARGS_5, "r"(__a6)
+
+#define __SYSCALL_CLOBBERS
+
+#endif /* __ASSEMBLER__ */
+#endif /* _BITS_SYSCALLS_H */
diff --git a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h b/libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
similarity index 91%
copy from libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
copy to libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
index b76b861..4bab547 100644
--- a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
+++ b/libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
@@ -12,8 +12,8 @@
/* can your target use syscall6() for mmap ? */
#define __UCLIBC_MMAP_HAS_6_ARGS__
-/* does your target align 64bit values in register pairs ? (32bit arches only) */
-#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
+/* does your target use syscall4() for truncate64 ? (32bit arches only) */
+#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
/* does your target have a broken create_module() ? */
#undef __UCLIBC_BROKEN_CREATE_MODULE__
diff --git a/libc/sysdeps/linux/common/bits/uClibc_page.h b/libc/sysdeps/linux/lm32/bits/uClibc_page.h
similarity index 76%
copy from libc/sysdeps/linux/common/bits/uClibc_page.h
copy to libc/sysdeps/linux/lm32/bits/uClibc_page.h
index d1f9262..a2d7ea2 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_page.h
+++ b/libc/sysdeps/linux/lm32/bits/uClibc_page.h
@@ -11,16 +11,14 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with the GNU C Library; see the file COPYING.LIB. If
- * not, see <http://www.gnu.org/licenses/>.
+ * License along with the GNU C Library; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307 USA.
*/
-/* Supply an architecture specific value for PAGE_SIZE and friends. */
-
#ifndef _UCLIBC_PAGE_H
#define _UCLIBC_PAGE_H
-/* PAGE_SHIFT determines the page size -- in this case 4096 */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
diff --git a/libc/sysdeps/linux/h8300/bits/wordsize.h b/libc/sysdeps/linux/lm32/bits/wordsize.h
similarity index 100%
copy from libc/sysdeps/linux/h8300/bits/wordsize.h
copy to libc/sysdeps/linux/lm32/bits/wordsize.h
diff --git a/libc/sysdeps/linux/lm32/clone.S b/libc/sysdeps/linux/lm32/clone.S
new file mode 100644
index 0000000..adc8b1a
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/clone.S
@@ -0,0 +1,52 @@
+#include <features.h>
+#include <sys/syscall.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#ifdef __NR_clone
+
+.text
+.global clone
+.type clone,@function
+.align 4
+
+clone:
+ be r1, r0, 2f
+ be r2, r0, 2f
+
+ mvi r8, __NR_clone
+ scall
+
+ mvi r3, -4095
+ bgeu r1, r3, 1f
+
+ be r1, r0, __thread_start
+
+ ret
+
+__thread_start:
+ mvi fp, 0
+ call r2
+
+ calli HIDDEN_JUMPTARGET(_exit)
+
+ /* Stop the unstoppable. */
+9:
+ bi 9b
+
+2:
+ mvi r1, -EINVAL
+1:
+ addi sp, sp, -8
+ sw (sp+4), ra
+ sw (sp+8), r1
+ calli __errno_location
+ lw r2, (sp+8)
+ lw ra, (sp+4)
+ sub r2, r0, r2
+ sw (r1+0), r2
+ mvi r1, -1
+ addi sp, sp, 8
+ ret
+
+#endif /* __NR_clone */
diff --git a/libc/sysdeps/linux/lm32/crt1.S b/libc/sysdeps/linux/lm32/crt1.S
new file mode 100644
index 0000000..661a159
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crt1.S
@@ -0,0 +1,21 @@
+.text
+.globl _start
+.type _start,@function
+.type main,@function
+.type __uClibc_main,@function
+
+_start:
+ mvi fp, 0 /* clear fp */
+ mvhi r1, hi(main) /* main */
+ ori r1, r1, lo(main)
+ lw r2, (sp+0) /* argc */
+ addi r3, sp, 4 /* argv */
+ mvhi r4, hi(_init) /* app_init */
+ ori r4, r4, lo(_init)
+ mvhi r5, hi(_fini) /* app_fini */
+ ori r5, r5, lo(_fini)
+ mvi r6, 0 /* rtld_fini */
+ mv r7, sp /* stack_end */
+
+ calli __uClibc_main
+
diff --git a/libc/sysdeps/linux/lm32/crti.S b/libc/sysdeps/linux/lm32/crti.S
new file mode 100644
index 0000000..8ceb15b
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crti.S
@@ -0,0 +1,17 @@
+.section .init
+.global _init
+.type _init,@function
+.align 4
+
+_init:
+ addi sp, sp, -4
+ sw (sp+4), ra
+
+.section .fini
+.global _fini
+.type _fini,@function
+.align 4
+
+_fini:
+ addi sp, sp, -4
+ sw (sp+4), ra
diff --git a/libc/sysdeps/linux/lm32/crtn.S b/libc/sysdeps/linux/lm32/crtn.S
new file mode 100644
index 0000000..93643ac
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crtn.S
@@ -0,0 +1,11 @@
+.section .init
+
+ lw ra, (sp+4)
+ addi sp, sp, 4
+ ret
+
+.section .fini
+
+ lw ra, (sp+4)
+ addi sp, sp, 4
+ ret
diff --git a/libc/sysdeps/linux/lm32/setjmp.S b/libc/sysdeps/linux/lm32/setjmp.S
new file mode 100644
index 0000000..6badd80
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/setjmp.S
@@ -0,0 +1,53 @@
+#define _SETJMP_H
+#define _ASM
+#include <bits/setjmp.h>
+
+#include <libc-symbols.h>
+
+.text
+.global C_SYMBOL_NAME(setjmp)
+.type C_SYMBOL_NAME(setjmp),@function
+.align 4
+
+C_SYMBOL_NAME(setjmp):
+ mvi r2, 1 /* save the signal mask */
+ bi C_SYMBOL_NAME(__sigsetjmp)
+
+.text
+.global C_SYMBOL_NAME(_setjmp)
+.type C_SYMBOL_NAME(_setjmp),@function
+.align 4
+
+C_SYMBOL_NAME(_setjmp):
+ mvi r2, 0 /* don't save the signal mask */
+ bi C_SYMBOL_NAME(__sigsetjmp)
+
+.text
+.global C_SYMBOL_NAME(__sigsetjmp)
+.type C_SYMBOL_NAME(__sigsetjmp),@function
+.align 4
+
+C_SYMBOL_NAME(__sigsetjmp):
+ /* save registers relative to r1 (arg0) */
+ sw (r1+0), r11
+ sw (r1+4), r12
+ sw (r1+8), r13
+ sw (r1+12), r14
+ sw (r1+16), r15
+ sw (r1+20), r16
+ sw (r1+24), r17
+ sw (r1+28), r18
+ sw (r1+32), r19
+ sw (r1+36), r20
+ sw (r1+40), r21
+ sw (r1+44), r22
+ sw (r1+48), r23
+ sw (r1+52), r24
+ sw (r1+56), r25
+ sw (r1+60), gp
+ sw (r1+64), fp
+ sw (r1+68), sp
+ sw (r1+72), ra
+
+ /* make a tail call to __sigjmp_save; it takes the same args */
+ bi C_SYMBOL_NAME(__sigjmp_save)
diff --git a/libc/sysdeps/linux/microblaze/sys/procfs.h b/libc/sysdeps/linux/lm32/sys/procfs.h
similarity index 85%
copy from libc/sysdeps/linux/microblaze/sys/procfs.h
copy to libc/sysdeps/linux/lm32/sys/procfs.h
index eca7828..c545fe7 100644
--- a/libc/sysdeps/linux/microblaze/sys/procfs.h
+++ b/libc/sysdeps/linux/lm32/sys/procfs.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_PROCFS_H
#define _SYS_PROCFS_H 1
@@ -38,24 +39,7 @@
typedef unsigned long elf_greg_t;
#endif
-/* This is exactly the same as `struct pt_regs' in the kernel. */
-struct elf_gregset
-{
- elf_greg_t gpr[32]; /* General purpose registers. */
-
- elf_greg_t pc; /* program counter */
- elf_greg_t psw; /* program status word */
- elf_greg_t ear; /* Exception address register */
- elf_greg_t esr; /* Excep[tion Status Register */
- elf_greg_t fsr; /* FPU Status register */
-
- elf_greg_t kernel_mode; /* 1 if in `kernel mode', 0 if user mode */
- elf_greg_t single_step; /* 1 if in single step mode */
-};
-
-#ifndef ELF_NGREG
-#define ELF_NGREG (sizeof (struct elf_gregset) / sizeof(elf_greg_t))
-#endif
+#define ELF_NGREG 32
#ifndef ELF_GREGSET_T
#define ELF_GREGSET_T
diff --git a/libc/sysdeps/linux/microblaze/sys/ucontext.h b/libc/sysdeps/linux/lm32/sys/ucontext.h
similarity index 86%
copy from libc/sysdeps/linux/microblaze/sys/ucontext.h
copy to libc/sysdeps/linux/lm32/sys/ucontext.h
index 7c5e303..366158f 100644
--- a/libc/sysdeps/linux/microblaze/sys/ucontext.h
+++ b/libc/sysdeps/linux/lm32/sys/ucontext.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
@@ -30,7 +31,7 @@ typedef struct sigcontext mcontext_t;
/* Userlevel context. */
typedef struct ucontext
{
- unsigned long int uc_flags;
+ unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
diff --git a/libc/sysdeps/linux/powerpc/sys/user.h b/libc/sysdeps/linux/lm32/sys/user.h
similarity index 89%
copy from libc/sysdeps/linux/powerpc/sys/user.h
copy to libc/sysdeps/linux/lm32/sys/user.h
index 5fa3745..e8a8aaa 100644
--- a/libc/sysdeps/linux/powerpc/sys/user.h
+++ b/libc/sysdeps/linux/lm32/sys/user.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_USER_H
diff --git a/libc/sysdeps/linux/lm32/vfork.S b/libc/sysdeps/linux/lm32/vfork.S
new file mode 100644
index 0000000..f651ba6
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/vfork.S
@@ -0,0 +1,42 @@
+#include <features.h>
+
+#define _ERRNO_H
+#include <bits/errno.h>
+#include <asm/unistd.h>
+#define _SIGNAL_H
+#include <bits/signum.h>
+
+#define CLONE_VM 0x00000100 /* set if VM shared between processes */
+#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to */
+
+.text
+.global __vfork
+.hidden __vfork
+.type __vfork,%function
+.align 4
+
+__vfork:
+ mvi r2, 0
+ mvi r3, CLONE_VFORK | CLONE_VM | SIGCHLD
+ mvi r8, __NR_clone
+ scall
+
+ mvi r2, -4096
+ bgeu r2, r1, 1f
+
+ addi sp, sp, -8
+ sw (sp+4), ra
+ sw (sp+8), r1
+ calli __errno_location
+ lw r2, (sp+8)
+ lw ra, (sp+4)
+ sub r2, r0, r2
+ sw (r1+0), r2
+ addi sp, sp, 8
+ mvi r1, -1
+1:
+ ret
+
+.size __vfork,.-__vfork
+weak_alias(__vfork,vfork)
+libc_hidden_weak(vfork)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch master updated. ff07819c8e36226e4cf2c528237906e606d82afe
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
18 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via ff07819c8e36226e4cf2c528237906e606d82afe (commit)
from b6b726d407d1ac6c0789247a98b4e5cae7ac991f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ff07819c8e36226e4cf2c528237906e606d82afe
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Mon Oct 19 01:32:48 2015 +0200
mips: sync header with glibc
Fixes following compile error, when UCLIBC_HAS_CONTEXT_FUNCS is enabled
on a mips64 build:
CC libc/sysdeps/linux/common/_exit.os
libc/sysdeps/linux/mips/swapcontext.S: Assembler messages:
libc/sysdeps/linux/mips/swapcontext.S:110: Error: Illegal operands `s.d fs6,(30*8+296)($4)'
libc/sysdeps/linux/mips/swapcontext.S:111: Error: Illegal operands `s.d fs7,(31*8+296)($4)'
libc/sysdeps/linux/mips/swapcontext.S:149: Error: Illegal operands `l.d fs6,(30*8+296)($2)'
libc/sysdeps/linux/mips/swapcontext.S:150: Error: Illegal operands `l.d fs7,(31*8+296)($2)'
Reported-by: Thomas Petazzoni <thomas.petazzoni(a)free-electrons.com>
-----------------------------------------------------------------------
Summary of changes:
libc/sysdeps/linux/mips/sys/fpregdef.h | 92 +++++++++++++++++++++++++-------
1 file changed, 74 insertions(+), 18 deletions(-)
diff --git a/libc/sysdeps/linux/mips/sys/fpregdef.h b/libc/sysdeps/linux/mips/sys/fpregdef.h
index ccbaf02..170f96c 100644
--- a/libc/sysdeps/linux/mips/sys/fpregdef.h
+++ b/libc/sysdeps/linux/mips/sys/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -12,25 +12,56 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
+ License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_FPREGDEF_H
#define _SYS_FPREGDEF_H
-/*
- * These definitions only cover the R3000-ish 16/32 register model.
- * But we're trying to be R3000 friendly anyway ...
- */
-#define fv0 $f0 /* return value */
-#define fv0f $f1
+/* Commonalities first, individualities next... */
+
+#define fv0 $f0 /* return value */
#define fv1 $f2
+
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
+#define fs0 $f20 /* callee saved */
+#define fs1 $f22
+#define fs2 $f24
+#define fs3 $f26
+#define fs4 $f28
+#define fs5 $f30
+#endif /* _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
+#define fa0 $f12 /* argument registers */
+#define fa1 $f13
+#define fa2 $f14
+#define fa3 $f15
+#define fa4 $f16
+#define fa5 $f17
+#define fa6 $f18
+#define fa7 $f19
+
+#define ft0 $f4 /* caller saved */
+#define ft1 $f5
+#define ft2 $f6
+#define ft3 $f7
+#define ft4 $f8
+#define ft5 $f9
+#define ft6 $f10
+#define ft7 $f11
+#endif /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABIO32
+#define fv0f $f1 /* return value, high part */
#define fv1f $f3
-#define fa0 $f12 /* argument registers */
+
+#define fa0 $f12 /* argument registers */
#define fa0f $f13
#define fa1 $f14
#define fa1f $f15
-#define ft0 $f4 /* caller saved */
+
+#define ft0 $f4 /* caller saved */
#define ft0f $f5
#define ft1 $f6
#define ft1f $f7
@@ -42,19 +73,44 @@
#define ft4f $f17
#define ft5 $f18
#define ft5f $f19
-#define fs0 $f20 /* callee saved */
-#define fs0f $f21
-#define fs1 $f22
+
+#define fs0f $f21 /* callee saved, high part */
#define fs1f $f23
-#define fs2 $f24
#define fs2f $f25
-#define fs3 $f26
#define fs3f $f27
-#define fs4 $f28
#define fs4f $f29
-#define fs5 $f30
#define fs5f $f31
+#endif /* _MIPS_SIM == _ABIO32 */
+
+#if _MIPS_SIM == _ABI64
+#define ft8 $f20 /* caller saved */
+#define ft9 $f21
+#define ft10 $f22
+#define ft11 $f23
+#define ft12 $f1
+#define ft13 $f3
+
+#define fs0 $f24 /* callee saved */
+#define fs1 $f25
+#define fs2 $f26
+#define fs3 $f27
+#define fs4 $f28
+#define fs5 $f29
+#define fs6 $f30
+#define fs7 $f31
+#endif /* _MIPS_SIM == _ABI64 */
+
+#if _MIPS_SIM == _ABIN32
+#define ft8 $f21 /* caller saved */
+#define ft9 $f23
+#define ft10 $f25
+#define ft11 $f27
+#define ft12 $f29
+#define ft13 $f31
+#define ft14 $f1
+#define ft15 $f3
+#endif /* _MIPS_SIM == _ABIN32 */
-#define fcr31 $31 /* FPU status register */
+#define fcr31 $31 /* FPU status register */
#endif /* sys/fpregdef.h */
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch 1.0 updated. v1.0.7-5-gc807e03
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
by wbx@helium.waldemar-brodkorb.de 18 Oct '15
18 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via c807e03c88504cf01508daa6dbae9e93dacfcf3c (commit)
from 9747e322b3ac8c3957746904b3ff56c0d53dcf4f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c807e03c88504cf01508daa6dbae9e93dacfcf3c
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Mon Oct 19 01:32:48 2015 +0200
mips: sync header with glibc
Fixes following compile error, when UCLIBC_HAS_CONTEXT_FUNCS is enabled
on a mips64 build:
CC libc/sysdeps/linux/common/_exit.os
libc/sysdeps/linux/mips/swapcontext.S: Assembler messages:
libc/sysdeps/linux/mips/swapcontext.S:110: Error: Illegal operands `s.d fs6,(30*8+296)($4)'
libc/sysdeps/linux/mips/swapcontext.S:111: Error: Illegal operands `s.d fs7,(31*8+296)($4)'
libc/sysdeps/linux/mips/swapcontext.S:149: Error: Illegal operands `l.d fs6,(30*8+296)($2)'
libc/sysdeps/linux/mips/swapcontext.S:150: Error: Illegal operands `l.d fs7,(31*8+296)($2)'
Reported-by: Thomas Petazzoni <thomas.petazzoni(a)free-electrons.com>
-----------------------------------------------------------------------
Summary of changes:
libc/sysdeps/linux/mips/sys/fpregdef.h | 92 +++++++++++++++++++++++++-------
1 file changed, 74 insertions(+), 18 deletions(-)
diff --git a/libc/sysdeps/linux/mips/sys/fpregdef.h b/libc/sysdeps/linux/mips/sys/fpregdef.h
index ccbaf02..170f96c 100644
--- a/libc/sysdeps/linux/mips/sys/fpregdef.h
+++ b/libc/sysdeps/linux/mips/sys/fpregdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -12,25 +12,56 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
+ License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_FPREGDEF_H
#define _SYS_FPREGDEF_H
-/*
- * These definitions only cover the R3000-ish 16/32 register model.
- * But we're trying to be R3000 friendly anyway ...
- */
-#define fv0 $f0 /* return value */
-#define fv0f $f1
+/* Commonalities first, individualities next... */
+
+#define fv0 $f0 /* return value */
#define fv1 $f2
+
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
+#define fs0 $f20 /* callee saved */
+#define fs1 $f22
+#define fs2 $f24
+#define fs3 $f26
+#define fs4 $f28
+#define fs5 $f30
+#endif /* _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
+#define fa0 $f12 /* argument registers */
+#define fa1 $f13
+#define fa2 $f14
+#define fa3 $f15
+#define fa4 $f16
+#define fa5 $f17
+#define fa6 $f18
+#define fa7 $f19
+
+#define ft0 $f4 /* caller saved */
+#define ft1 $f5
+#define ft2 $f6
+#define ft3 $f7
+#define ft4 $f8
+#define ft5 $f9
+#define ft6 $f10
+#define ft7 $f11
+#endif /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABIO32
+#define fv0f $f1 /* return value, high part */
#define fv1f $f3
-#define fa0 $f12 /* argument registers */
+
+#define fa0 $f12 /* argument registers */
#define fa0f $f13
#define fa1 $f14
#define fa1f $f15
-#define ft0 $f4 /* caller saved */
+
+#define ft0 $f4 /* caller saved */
#define ft0f $f5
#define ft1 $f6
#define ft1f $f7
@@ -42,19 +73,44 @@
#define ft4f $f17
#define ft5 $f18
#define ft5f $f19
-#define fs0 $f20 /* callee saved */
-#define fs0f $f21
-#define fs1 $f22
+
+#define fs0f $f21 /* callee saved, high part */
#define fs1f $f23
-#define fs2 $f24
#define fs2f $f25
-#define fs3 $f26
#define fs3f $f27
-#define fs4 $f28
#define fs4f $f29
-#define fs5 $f30
#define fs5f $f31
+#endif /* _MIPS_SIM == _ABIO32 */
+
+#if _MIPS_SIM == _ABI64
+#define ft8 $f20 /* caller saved */
+#define ft9 $f21
+#define ft10 $f22
+#define ft11 $f23
+#define ft12 $f1
+#define ft13 $f3
+
+#define fs0 $f24 /* callee saved */
+#define fs1 $f25
+#define fs2 $f26
+#define fs3 $f27
+#define fs4 $f28
+#define fs5 $f29
+#define fs6 $f30
+#define fs7 $f31
+#endif /* _MIPS_SIM == _ABI64 */
+
+#if _MIPS_SIM == _ABIN32
+#define ft8 $f21 /* caller saved */
+#define ft9 $f23
+#define ft10 $f25
+#define ft11 $f27
+#define ft12 $f29
+#define ft13 $f31
+#define ft14 $f1
+#define ft15 $f3
+#endif /* _MIPS_SIM == _ABIN32 */
-#define fcr31 $31 /* FPU status register */
+#define fcr31 $31 /* FPU status register */
#endif /* sys/fpregdef.h */
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch master updated. b6b726d407d1ac6c0789247a98b4e5cae7ac991f
by wbx@helium.waldemar-brodkorb.de 17 Oct '15
by wbx@helium.waldemar-brodkorb.de 17 Oct '15
17 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via b6b726d407d1ac6c0789247a98b4e5cae7ac991f (commit)
from d752724d4dce488a38f464a52f367e585da71075 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b6b726d407d1ac6c0789247a98b4e5cae7ac991f
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sat Oct 17 11:17:07 2015 +0200
lm32: add new architecture
Add support for FPGA systems from Lattice Semiconductor
http://www.latticesemi.com
Merge https://github.com/m-labs/uclibc-lm32.git
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 2 +
extra/Configs/Config.in | 8 +++
extra/Configs/{Config.nios2 => Config.lm32} | 6 +-
extra/Configs/defconfigs/lm32 | 1 +
libc/sysdeps/linux/{alpha => lm32}/Makefile | 0
.../{Makefile.in => linux/lm32/Makefile.arch} | 3 +-
libc/sysdeps/linux/lm32/__longjmp.S | 40 +++++++++++++
libc/sysdeps/linux/{i960 => lm32}/bits/endian.h | 4 +-
.../linux/{microblaze => lm32}/bits/fcntl.h | 9 +--
libc/sysdeps/linux/lm32/bits/kernel_stat.h | 50 +++++++++++++++++
libc/sysdeps/linux/lm32/bits/kernel_types.h | 37 ++++++++++++
libc/sysdeps/linux/lm32/bits/setjmp.h | 24 ++++++++
libc/sysdeps/linux/{or1k => lm32}/bits/stackinfo.h | 4 +-
libc/sysdeps/linux/lm32/bits/syscalls.h | 59 ++++++++++++++++++++
.../{v850 => lm32}/bits/uClibc_arch_features.h | 4 +-
.../linux/{common => lm32}/bits/uClibc_page.h | 8 +--
libc/sysdeps/linux/{h8300 => lm32}/bits/wordsize.h | 0
libc/sysdeps/linux/lm32/clone.S | 52 +++++++++++++++++
libc/sysdeps/linux/lm32/crt1.S | 21 +++++++
libc/sysdeps/linux/lm32/crti.S | 17 ++++++
libc/sysdeps/linux/lm32/crtn.S | 11 ++++
libc/sysdeps/linux/lm32/setjmp.S | 53 ++++++++++++++++++
.../linux/{microblaze => lm32}/sys/procfs.h | 24 ++------
.../linux/{microblaze => lm32}/sys/ucontext.h | 7 ++-
libc/sysdeps/linux/{powerpc => lm32}/sys/user.h | 5 +-
libc/sysdeps/linux/lm32/vfork.S | 42 ++++++++++++++
26 files changed, 446 insertions(+), 45 deletions(-)
copy extra/Configs/{Config.nios2 => Config.lm32} (86%)
create mode 100644 extra/Configs/defconfigs/lm32
copy libc/sysdeps/linux/{alpha => lm32}/Makefile (100%)
copy libc/sysdeps/{Makefile.in => linux/lm32/Makefile.arch} (75%)
create mode 100644 libc/sysdeps/linux/lm32/__longjmp.S
copy libc/sysdeps/linux/{i960 => lm32}/bits/endian.h (92%)
copy libc/sysdeps/linux/{microblaze => lm32}/bits/fcntl.h (96%)
create mode 100644 libc/sysdeps/linux/lm32/bits/kernel_stat.h
create mode 100644 libc/sysdeps/linux/lm32/bits/kernel_types.h
create mode 100644 libc/sysdeps/linux/lm32/bits/setjmp.h
copy libc/sysdeps/linux/{or1k => lm32}/bits/stackinfo.h (91%)
create mode 100644 libc/sysdeps/linux/lm32/bits/syscalls.h
copy libc/sysdeps/linux/{v850 => lm32}/bits/uClibc_arch_features.h (91%)
copy libc/sysdeps/linux/{common => lm32}/bits/uClibc_page.h (76%)
copy libc/sysdeps/linux/{h8300 => lm32}/bits/wordsize.h (100%)
create mode 100644 libc/sysdeps/linux/lm32/clone.S
create mode 100644 libc/sysdeps/linux/lm32/crt1.S
create mode 100644 libc/sysdeps/linux/lm32/crti.S
create mode 100644 libc/sysdeps/linux/lm32/crtn.S
create mode 100644 libc/sysdeps/linux/lm32/setjmp.S
copy libc/sysdeps/linux/{microblaze => lm32}/sys/procfs.h (85%)
copy libc/sysdeps/linux/{microblaze => lm32}/sys/ucontext.h (86%)
copy libc/sysdeps/linux/{powerpc => lm32}/sys/user.h (89%)
create mode 100644 libc/sysdeps/linux/lm32/vfork.S
diff --git a/Rules.mak b/Rules.mak
index f0abd3b..f26d6cf 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -299,6 +299,7 @@ CPU_CFLAGS-y += $(CFLAG_-fmerge-all-constants)
LDADD_LIBFLOAT=
ifeq ($(UCLIBC_HAS_SOFT_FLOAT),y)
ifneq ($(TARGET_ARCH),bfin)
+ifneq ($(TARGET_ARCH),lm32)
ifneq ($(TARGET_ARCH),nios2)
ifneq ($(TARGET_ARCH),sh)
ifneq ($(TARGET_ARCH),c6x)
@@ -310,6 +311,7 @@ endif
endif
endif
endif
+endif
$(eval $(call check-gcc-var,-std=gnu99))
CPU_CFLAGS-y += $(CFLAG_-std=gnu99)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index d22d1e7..48ce506 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -27,6 +27,7 @@ choice
default TARGET_i386 if DESIRED_TARGET_ARCH = "i386"
default TARGET_i960 if DESIRED_TARGET_ARCH = "i960"
default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64"
+ default TARGET_lm32 if DESIRED_TARGET_ARCH = "lm32"
default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"
default TARGET_metag if DESIRED_TARGET_ARCH = "metag"
default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze"
@@ -83,6 +84,9 @@ config TARGET_i960
config TARGET_ia64
bool "ia64"
+config TARGET_lm32
+ bool "lm32"
+
config TARGET_m68k
bool "m68k"
@@ -168,6 +172,10 @@ if TARGET_ia64
source "extra/Configs/Config.ia64"
endif
+if TARGET_lm32
+source "extra/Configs/Config.lm32"
+endif
+
if TARGET_m68k
source "extra/Configs/Config.m68k"
endif
diff --git a/extra/Configs/Config.nios2 b/extra/Configs/Config.lm32
similarity index 86%
copy from extra/Configs/Config.nios2
copy to extra/Configs/Config.lm32
index 8bb8aca..8077267 100644
--- a/extra/Configs/Config.nios2
+++ b/extra/Configs/Config.lm32
@@ -5,13 +5,13 @@
config TARGET_ARCH
string
- default "nios2"
+ default "lm32"
config FORCE_OPTIONS_FOR_ARCH
bool
default y
- select ARCH_LITTLE_ENDIAN
+ select ARCH_BIG_ENDIAN
select ARCH_HAS_NO_MMU
select ARCH_HAS_NO_LDSO
- select ARCH_HAS_DEPRECATED_SYSCALLS
select HAVE_NO_PIC
+ select ARCH_HAS_DEPRECATED_SYSCALLS
diff --git a/extra/Configs/defconfigs/lm32 b/extra/Configs/defconfigs/lm32
new file mode 100644
index 0000000..63fb19d
--- /dev/null
+++ b/extra/Configs/defconfigs/lm32
@@ -0,0 +1 @@
+TARGET_lm32=y
diff --git a/libc/sysdeps/linux/alpha/Makefile b/libc/sysdeps/linux/lm32/Makefile
similarity index 100%
copy from libc/sysdeps/linux/alpha/Makefile
copy to libc/sysdeps/linux/lm32/Makefile
diff --git a/libc/sysdeps/Makefile.in b/libc/sysdeps/linux/lm32/Makefile.arch
similarity index 75%
copy from libc/sysdeps/Makefile.in
copy to libc/sysdeps/linux/lm32/Makefile.arch
index 686cb72..eed9e7b 100644
--- a/libc/sysdeps/Makefile.in
+++ b/libc/sysdeps/linux/lm32/Makefile.arch
@@ -5,4 +5,5 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-include $(top_srcdir)libc/sysdeps/linux/Makefile.in
+CSRC :=
+SSRC := clone.S setjmp.S __longjmp.S vfork.S
diff --git a/libc/sysdeps/linux/lm32/__longjmp.S b/libc/sysdeps/linux/lm32/__longjmp.S
new file mode 100644
index 0000000..cbb55f0
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/__longjmp.S
@@ -0,0 +1,40 @@
+#define _SETJMP_H
+#define _ASM
+#include <bits/setjmp.h>
+
+#include <libc-symbols.h>
+
+.text
+.global C_SYMBOL_NAME(__longjmp)
+.type C_SYMBOL_NAME(__longjmp),@function
+.align 4
+
+C_SYMBOL_NAME(__longjmp):
+ /* load registers relative from r5 (arg0) */
+ lw r11, (r1+0)
+ lw r12, (r1+4)
+ lw r13, (r1+8)
+ lw r14, (r1+12)
+ lw r15, (r1+16)
+ lw r16, (r1+20)
+ lw r17, (r1+24)
+ lw r18, (r1+28)
+ lw r19, (r1+32)
+ lw r20, (r1+36)
+ lw r21, (r1+40)
+ lw r22, (r1+44)
+ lw r23, (r1+48)
+ lw r24, (r1+52)
+ lw r25, (r1+56)
+ lw gp, (r1+60)
+ lw fp, (r1+64)
+ lw sp, (r1+68)
+ lw ra, (r1+72)
+
+ mv r1, r2 /* copy val */
+ bne r1, r0, 1f
+ mvi r1, 1 /* val was zero, set it to 1 */
+1:
+ ret
+
+libc_hidden_def(__longjmp)
diff --git a/libc/sysdeps/linux/i960/bits/endian.h b/libc/sysdeps/linux/lm32/bits/endian.h
similarity index 92%
copy from libc/sysdeps/linux/i960/bits/endian.h
copy to libc/sysdeps/linux/lm32/bits/endian.h
index e2b1316..1acee18 100644
--- a/libc/sysdeps/linux/i960/bits/endian.h
+++ b/libc/sysdeps/linux/lm32/bits/endian.h
@@ -10,6 +10,4 @@
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-
+#define __BYTE_ORDER __BIG_ENDIAN
diff --git a/libc/sysdeps/linux/microblaze/bits/fcntl.h b/libc/sysdeps/linux/lm32/bits/fcntl.h
similarity index 96%
copy from libc/sysdeps/linux/microblaze/bits/fcntl.h
copy to libc/sysdeps/linux/lm32/bits/fcntl.h
index e7651e8..44e8f3f 100644
--- a/libc/sysdeps/linux/microblaze/bits/fcntl.h
+++ b/libc/sysdeps/linux/lm32/bits/fcntl.h
@@ -13,8 +13,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _FCNTL_H
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
@@ -98,8 +99,8 @@
# define F_NOTIFY 1026 /* Request notfications on a directory. */
# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
close-on-exit set on new fd. */
-# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
-# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */
+# define F_SETPIPE_SZ 1031 /* Set of pipe page size array */
+# define F_GETPIPE_SZ 1032 /* Get of pipe page size array */
#endif
/* For F_[GET|SET]FL. */
diff --git a/libc/sysdeps/linux/lm32/bits/kernel_stat.h b/libc/sysdeps/linux/lm32/bits/kernel_stat.h
new file mode 100644
index 0000000..c998b56
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/kernel_stat.h
@@ -0,0 +1,50 @@
+#ifndef _BITS_STAT_STRUCT_H
+#define _BITS_STAT_STRUCT_H
+
+#ifndef _LIBC
+#error bits/kernel_stat.h is for internal uClibc use only!
+#endif
+
+struct kernel_stat
+{
+ unsigned long st_dev; /* Device. */
+ unsigned long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long st_rdev; /* Device number, if device. */
+ unsigned long __pad1;
+ long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
+struct kernel_stat64
+{
+ unsigned long long st_dev; /* Device. */
+ unsigned long long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad1;
+ long long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ long long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+ unsigned int __unused4;
+ unsigned int __unused5;
+};
+
+#endif /* _BITS_STAT_STRUCT_H */
diff --git a/libc/sysdeps/linux/lm32/bits/kernel_types.h b/libc/sysdeps/linux/lm32/bits/kernel_types.h
new file mode 100644
index 0000000..2c3c6df
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/kernel_types.h
@@ -0,0 +1,37 @@
+#ifndef __ASM_GENERIC_POSIX_TYPES_H
+#define __ASM_GENERIC_POSIX_TYPES_H
+
+typedef unsigned long __kernel_ino_t;
+typedef unsigned int __kernel_mode_t;
+typedef unsigned long __kernel_nlink_t;
+typedef long __kernel_off_t;
+typedef int __kernel_pid_t;
+typedef int __kernel_ipc_pid_t;
+typedef unsigned int __kernel_uid_t;
+typedef unsigned int __kernel_gid_t;
+typedef unsigned int __kernel_size_t;
+typedef int __kernel_ssize_t;
+typedef int __kernel_ptrdiff_t;
+typedef long __kernel_time_t;
+typedef long __kernel_suseconds_t;
+typedef long __kernel_clock_t;
+typedef int __kernel_timer_t;
+typedef int __kernel_clockid_t;
+typedef int __kernel_daddr_t;
+typedef char * __kernel_caddr_t;
+typedef unsigned short __kernel_uid16_t;
+typedef unsigned short __kernel_gid16_t;
+typedef __kernel_uid_t __kernel_uid32_t;
+typedef __kernel_gid_t __kernel_gid32_t;
+
+typedef __kernel_uid_t __kernel_old_uid_t;
+typedef __kernel_gid_t __kernel_old_gid_t;
+typedef unsigned int __kernel_old_dev_t;
+
+typedef long long __kernel_loff_t;
+
+typedef struct {
+ int val[2];
+} __kernel_fsid_t;
+
+#endif /* __ASM_GENERIC_POSIX_TYPES_H */
diff --git a/libc/sysdeps/linux/lm32/bits/setjmp.h b/libc/sysdeps/linux/lm32/bits/setjmp.h
new file mode 100644
index 0000000..6798083
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/setjmp.h
@@ -0,0 +1,24 @@
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+#ifndef _ASM
+typedef struct
+ {
+ int __regs[15]; /* callee-saved registers r11-r25 */
+ void *__gp; /* global pointer */
+ void *__fp; /* frame pointer */
+ void *__sp; /* stack pointer */
+ void *__ra; /* return address */
+ } __jmp_buf[1];
+#endif
+
+/* Test if longjmp to JMPBUF would unwind the frame
+ containing a local variable at ADDRESS. */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+ ((void *) (address) < (void *) (jmpbuf)[0].__sp)
+
+#endif
diff --git a/libc/sysdeps/linux/or1k/bits/stackinfo.h b/libc/sysdeps/linux/lm32/bits/stackinfo.h
similarity index 91%
copy from libc/sysdeps/linux/or1k/bits/stackinfo.h
copy to libc/sysdeps/linux/lm32/bits/stackinfo.h
index 12d46a0..695616e 100644
--- a/libc/sysdeps/linux/or1k/bits/stackinfo.h
+++ b/libc/sysdeps/linux/lm32/bits/stackinfo.h
@@ -17,12 +17,12 @@
02111-1307 USA. */
/* This file contains a bit of information about the stack allocation
- of the processor. */
+ of the processor. Since there is no general truth we can't say
+ anything here. */
#ifndef _STACKINFO_H
#define _STACKINFO_H 1
-/* On or1k the stack grows down. */
#define _STACK_GROWS_DOWN 1
#endif /* stackinfo.h */
diff --git a/libc/sysdeps/linux/lm32/bits/syscalls.h b/libc/sysdeps/linux/lm32/bits/syscalls.h
new file mode 100644
index 0000000..2956954
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/bits/syscalls.h
@@ -0,0 +1,59 @@
+#ifndef _BITS_SYSCALLS_H
+#define _BITS_SYSCALLS_H
+#ifndef _SYSCALL_H
+# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
+#endif
+
+
+#ifndef __ASSEMBLER__
+
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ LOAD_ARGS_##nr (args); \
+ register int __ret __asm__("r1"); \
+ register int _scno __asm__("r8") = name; \
+ __asm__ __volatile__("scall" \
+ : "=r" (__ret) \
+ : "r"(_scno) ASM_ARGS_##nr \
+ : __SYSCALL_CLOBBERS ); \
+ __ret; \
+ })
+
+/* original port had ret >= -125 ?! */
+#define LOAD_ARGS_0() do { } while(0)
+#define ASM_ARGS_0
+#define LOAD_ARGS_1(a1) \
+ int _a1 = (int)(a1); \
+ LOAD_ARGS_0(); \
+ register int __a1 __asm__("r1") = _a1
+#define ASM_ARGS_1 ASM_ARGS_0, "0"(__a1)
+#define LOAD_ARGS_2(a1, a2) \
+ int _a2 = (int)(a2); \
+ LOAD_ARGS_1(a1); \
+ register int __a2 __asm__("r2") = _a2
+#define ASM_ARGS_2 ASM_ARGS_1, "r"(__a2)
+#define LOAD_ARGS_3(a1, a2, a3) \
+ int _a3 = (int)(a3); \
+ LOAD_ARGS_2(a1, a2); \
+ register int __a3 __asm__("r3") = _a3
+#define ASM_ARGS_3 ASM_ARGS_2, "r"(__a3)
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ int _a4 = (int)(a4); \
+ LOAD_ARGS_3(a1, a2, a3); \
+ register int __a4 __asm__("r4") = _a4
+#define ASM_ARGS_4 ASM_ARGS_3, "r"(__a4)
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ int _a5 = (int)(a5); \
+ LOAD_ARGS_4(a1, a2, a3, a4); \
+ register int __a5 __asm__("r5") = _a5
+#define ASM_ARGS_5 ASM_ARGS_4, "r"(__a5)
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ int _a6 = (int)(a6); \
+ LOAD_ARGS_5(a1, a2, a3, a4, a5); \
+ register int __a6 __asm__("r6") = _a6
+#define ASM_ARGS_6 ASM_ARGS_5, "r"(__a6)
+
+#define __SYSCALL_CLOBBERS
+
+#endif /* __ASSEMBLER__ */
+#endif /* _BITS_SYSCALLS_H */
diff --git a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h b/libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
similarity index 91%
copy from libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
copy to libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
index b76b861..4bab547 100644
--- a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
+++ b/libc/sysdeps/linux/lm32/bits/uClibc_arch_features.h
@@ -12,8 +12,8 @@
/* can your target use syscall6() for mmap ? */
#define __UCLIBC_MMAP_HAS_6_ARGS__
-/* does your target align 64bit values in register pairs ? (32bit arches only) */
-#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
+/* does your target use syscall4() for truncate64 ? (32bit arches only) */
+#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
/* does your target have a broken create_module() ? */
#undef __UCLIBC_BROKEN_CREATE_MODULE__
diff --git a/libc/sysdeps/linux/common/bits/uClibc_page.h b/libc/sysdeps/linux/lm32/bits/uClibc_page.h
similarity index 76%
copy from libc/sysdeps/linux/common/bits/uClibc_page.h
copy to libc/sysdeps/linux/lm32/bits/uClibc_page.h
index d1f9262..a2d7ea2 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_page.h
+++ b/libc/sysdeps/linux/lm32/bits/uClibc_page.h
@@ -11,16 +11,14 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with the GNU C Library; see the file COPYING.LIB. If
- * not, see <http://www.gnu.org/licenses/>.
+ * License along with the GNU C Library; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ * 02111-1307 USA.
*/
-/* Supply an architecture specific value for PAGE_SIZE and friends. */
-
#ifndef _UCLIBC_PAGE_H
#define _UCLIBC_PAGE_H
-/* PAGE_SHIFT determines the page size -- in this case 4096 */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
diff --git a/libc/sysdeps/linux/h8300/bits/wordsize.h b/libc/sysdeps/linux/lm32/bits/wordsize.h
similarity index 100%
copy from libc/sysdeps/linux/h8300/bits/wordsize.h
copy to libc/sysdeps/linux/lm32/bits/wordsize.h
diff --git a/libc/sysdeps/linux/lm32/clone.S b/libc/sysdeps/linux/lm32/clone.S
new file mode 100644
index 0000000..adc8b1a
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/clone.S
@@ -0,0 +1,52 @@
+#include <features.h>
+#include <sys/syscall.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#ifdef __NR_clone
+
+.text
+.global clone
+.type clone,@function
+.align 4
+
+clone:
+ be r1, r0, 2f
+ be r2, r0, 2f
+
+ mvi r8, __NR_clone
+ scall
+
+ mvi r3, -4095
+ bgeu r1, r3, 1f
+
+ be r1, r0, __thread_start
+
+ ret
+
+__thread_start:
+ mvi fp, 0
+ call r2
+
+ calli HIDDEN_JUMPTARGET(_exit)
+
+ /* Stop the unstoppable. */
+9:
+ bi 9b
+
+2:
+ mvi r1, -EINVAL
+1:
+ addi sp, sp, -8
+ sw (sp+4), ra
+ sw (sp+8), r1
+ calli __errno_location
+ lw r2, (sp+8)
+ lw ra, (sp+4)
+ sub r2, r0, r2
+ sw (r1+0), r2
+ mvi r1, -1
+ addi sp, sp, 8
+ ret
+
+#endif /* __NR_clone */
diff --git a/libc/sysdeps/linux/lm32/crt1.S b/libc/sysdeps/linux/lm32/crt1.S
new file mode 100644
index 0000000..661a159
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crt1.S
@@ -0,0 +1,21 @@
+.text
+.globl _start
+.type _start,@function
+.type main,@function
+.type __uClibc_main,@function
+
+_start:
+ mvi fp, 0 /* clear fp */
+ mvhi r1, hi(main) /* main */
+ ori r1, r1, lo(main)
+ lw r2, (sp+0) /* argc */
+ addi r3, sp, 4 /* argv */
+ mvhi r4, hi(_init) /* app_init */
+ ori r4, r4, lo(_init)
+ mvhi r5, hi(_fini) /* app_fini */
+ ori r5, r5, lo(_fini)
+ mvi r6, 0 /* rtld_fini */
+ mv r7, sp /* stack_end */
+
+ calli __uClibc_main
+
diff --git a/libc/sysdeps/linux/lm32/crti.S b/libc/sysdeps/linux/lm32/crti.S
new file mode 100644
index 0000000..8ceb15b
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crti.S
@@ -0,0 +1,17 @@
+.section .init
+.global _init
+.type _init,@function
+.align 4
+
+_init:
+ addi sp, sp, -4
+ sw (sp+4), ra
+
+.section .fini
+.global _fini
+.type _fini,@function
+.align 4
+
+_fini:
+ addi sp, sp, -4
+ sw (sp+4), ra
diff --git a/libc/sysdeps/linux/lm32/crtn.S b/libc/sysdeps/linux/lm32/crtn.S
new file mode 100644
index 0000000..93643ac
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/crtn.S
@@ -0,0 +1,11 @@
+.section .init
+
+ lw ra, (sp+4)
+ addi sp, sp, 4
+ ret
+
+.section .fini
+
+ lw ra, (sp+4)
+ addi sp, sp, 4
+ ret
diff --git a/libc/sysdeps/linux/lm32/setjmp.S b/libc/sysdeps/linux/lm32/setjmp.S
new file mode 100644
index 0000000..6badd80
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/setjmp.S
@@ -0,0 +1,53 @@
+#define _SETJMP_H
+#define _ASM
+#include <bits/setjmp.h>
+
+#include <libc-symbols.h>
+
+.text
+.global C_SYMBOL_NAME(setjmp)
+.type C_SYMBOL_NAME(setjmp),@function
+.align 4
+
+C_SYMBOL_NAME(setjmp):
+ mvi r2, 1 /* save the signal mask */
+ bi C_SYMBOL_NAME(__sigsetjmp)
+
+.text
+.global C_SYMBOL_NAME(_setjmp)
+.type C_SYMBOL_NAME(_setjmp),@function
+.align 4
+
+C_SYMBOL_NAME(_setjmp):
+ mvi r2, 0 /* don't save the signal mask */
+ bi C_SYMBOL_NAME(__sigsetjmp)
+
+.text
+.global C_SYMBOL_NAME(__sigsetjmp)
+.type C_SYMBOL_NAME(__sigsetjmp),@function
+.align 4
+
+C_SYMBOL_NAME(__sigsetjmp):
+ /* save registers relative to r1 (arg0) */
+ sw (r1+0), r11
+ sw (r1+4), r12
+ sw (r1+8), r13
+ sw (r1+12), r14
+ sw (r1+16), r15
+ sw (r1+20), r16
+ sw (r1+24), r17
+ sw (r1+28), r18
+ sw (r1+32), r19
+ sw (r1+36), r20
+ sw (r1+40), r21
+ sw (r1+44), r22
+ sw (r1+48), r23
+ sw (r1+52), r24
+ sw (r1+56), r25
+ sw (r1+60), gp
+ sw (r1+64), fp
+ sw (r1+68), sp
+ sw (r1+72), ra
+
+ /* make a tail call to __sigjmp_save; it takes the same args */
+ bi C_SYMBOL_NAME(__sigjmp_save)
diff --git a/libc/sysdeps/linux/microblaze/sys/procfs.h b/libc/sysdeps/linux/lm32/sys/procfs.h
similarity index 85%
copy from libc/sysdeps/linux/microblaze/sys/procfs.h
copy to libc/sysdeps/linux/lm32/sys/procfs.h
index eca7828..c545fe7 100644
--- a/libc/sysdeps/linux/microblaze/sys/procfs.h
+++ b/libc/sysdeps/linux/lm32/sys/procfs.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_PROCFS_H
#define _SYS_PROCFS_H 1
@@ -38,24 +39,7 @@
typedef unsigned long elf_greg_t;
#endif
-/* This is exactly the same as `struct pt_regs' in the kernel. */
-struct elf_gregset
-{
- elf_greg_t gpr[32]; /* General purpose registers. */
-
- elf_greg_t pc; /* program counter */
- elf_greg_t psw; /* program status word */
- elf_greg_t ear; /* Exception address register */
- elf_greg_t esr; /* Excep[tion Status Register */
- elf_greg_t fsr; /* FPU Status register */
-
- elf_greg_t kernel_mode; /* 1 if in `kernel mode', 0 if user mode */
- elf_greg_t single_step; /* 1 if in single step mode */
-};
-
-#ifndef ELF_NGREG
-#define ELF_NGREG (sizeof (struct elf_gregset) / sizeof(elf_greg_t))
-#endif
+#define ELF_NGREG 32
#ifndef ELF_GREGSET_T
#define ELF_GREGSET_T
diff --git a/libc/sysdeps/linux/microblaze/sys/ucontext.h b/libc/sysdeps/linux/lm32/sys/ucontext.h
similarity index 86%
copy from libc/sysdeps/linux/microblaze/sys/ucontext.h
copy to libc/sysdeps/linux/lm32/sys/ucontext.h
index 7c5e303..366158f 100644
--- a/libc/sysdeps/linux/microblaze/sys/ucontext.h
+++ b/libc/sysdeps/linux/lm32/sys/ucontext.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
@@ -30,7 +31,7 @@ typedef struct sigcontext mcontext_t;
/* Userlevel context. */
typedef struct ucontext
{
- unsigned long int uc_flags;
+ unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
diff --git a/libc/sysdeps/linux/powerpc/sys/user.h b/libc/sysdeps/linux/lm32/sys/user.h
similarity index 89%
copy from libc/sysdeps/linux/powerpc/sys/user.h
copy to libc/sysdeps/linux/lm32/sys/user.h
index 5fa3745..e8a8aaa 100644
--- a/libc/sysdeps/linux/powerpc/sys/user.h
+++ b/libc/sysdeps/linux/lm32/sys/user.h
@@ -12,8 +12,9 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
#ifndef _SYS_USER_H
diff --git a/libc/sysdeps/linux/lm32/vfork.S b/libc/sysdeps/linux/lm32/vfork.S
new file mode 100644
index 0000000..f651ba6
--- /dev/null
+++ b/libc/sysdeps/linux/lm32/vfork.S
@@ -0,0 +1,42 @@
+#include <features.h>
+
+#define _ERRNO_H
+#include <bits/errno.h>
+#include <asm/unistd.h>
+#define _SIGNAL_H
+#include <bits/signum.h>
+
+#define CLONE_VM 0x00000100 /* set if VM shared between processes */
+#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to */
+
+.text
+.global __vfork
+.hidden __vfork
+.type __vfork,%function
+.align 4
+
+__vfork:
+ mvi r2, 0
+ mvi r3, CLONE_VFORK | CLONE_VM | SIGCHLD
+ mvi r8, __NR_clone
+ scall
+
+ mvi r2, -4096
+ bgeu r2, r1, 1f
+
+ addi sp, sp, -8
+ sw (sp+4), ra
+ sw (sp+8), r1
+ calli __errno_location
+ lw r2, (sp+8)
+ lw ra, (sp+4)
+ sub r2, r0, r2
+ sw (r1+0), r2
+ addi sp, sp, 8
+ mvi r1, -1
+1:
+ ret
+
+.size __vfork,.-__vfork
+weak_alias(__vfork,vfork)
+libc_hidden_weak(vfork)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch master updated. d752724d4dce488a38f464a52f367e585da71075
by wbx@helium.waldemar-brodkorb.de 16 Oct '15
by wbx@helium.waldemar-brodkorb.de 16 Oct '15
16 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via d752724d4dce488a38f464a52f367e585da71075 (commit)
from dfa593d4d881116723a4401b466ea964fb12327b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d752724d4dce488a38f464a52f367e585da71075
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Fri Oct 16 19:25:44 2015 +0200
ia64: enable and fix compile issues
Enable ia64 in the menu.
Fix build for architectures withou ld.so support.
Fix syntax error in bits/byteswap.h.
-----------------------------------------------------------------------
Summary of changes:
ldso/include/dl-defs.h | 2 ++
libc/sysdeps/linux/ia64/bits/byteswap.h | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h
index a1735f0..bedfa97 100644
--- a/ldso/include/dl-defs.h
+++ b/ldso/include/dl-defs.h
@@ -73,9 +73,11 @@ typedef struct {
#endif
#ifdef _LIBC
+#ifndef __ARCH_HAS_NO_SHARED__
/* arch specific defines */
#include <dl-sysdep.h>
#endif
+#endif
/* Provide a means for a port to pass additional arguments to the _dl_start
function. */
diff --git a/libc/sysdeps/linux/ia64/bits/byteswap.h b/libc/sysdeps/linux/ia64/bits/byteswap.h
index 3226669..0e352fc 100644
--- a/libc/sysdeps/linux/ia64/bits/byteswap.h
+++ b/libc/sysdeps/linux/ia64/bits/byteswap.h
@@ -46,6 +46,4 @@
__v; }))
#endif
-#endif
-
#include <bits/byteswap-common.h>
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch 1.0 updated. v1.0.7-4-g9747e32
by wbx@helium.waldemar-brodkorb.de 16 Oct '15
by wbx@helium.waldemar-brodkorb.de 16 Oct '15
16 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 9747e322b3ac8c3957746904b3ff56c0d53dcf4f (commit)
from ea86f1d8885335f2bd38a388d2ab762bd1e29427 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9747e322b3ac8c3957746904b3ff56c0d53dcf4f
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Fri Oct 16 19:25:44 2015 +0200
ia64: enable and fix compile issues
Enable ia64 in the menu.
Fix build for architectures withou ld.so support.
Fix syntax error in bits/byteswap.h.
-----------------------------------------------------------------------
Summary of changes:
extra/Configs/Config.in | 4 ++--
ldso/include/dl-defs.h | 2 ++
libc/sysdeps/linux/ia64/bits/byteswap.h | 2 --
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index ab6d01b..c954250 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -87,8 +87,8 @@ config TARGET_i386
#config TARGET_i960
# bool "i960 (BROKEN)"
-#config TARGET_ia64
-# bool "ia64"
+config TARGET_ia64
+ bool "ia64"
config TARGET_m68k
bool "m68k"
diff --git a/ldso/include/dl-defs.h b/ldso/include/dl-defs.h
index a1735f0..bedfa97 100644
--- a/ldso/include/dl-defs.h
+++ b/ldso/include/dl-defs.h
@@ -73,9 +73,11 @@ typedef struct {
#endif
#ifdef _LIBC
+#ifndef __ARCH_HAS_NO_SHARED__
/* arch specific defines */
#include <dl-sysdep.h>
#endif
+#endif
/* Provide a means for a port to pass additional arguments to the _dl_start
function. */
diff --git a/libc/sysdeps/linux/ia64/bits/byteswap.h b/libc/sysdeps/linux/ia64/bits/byteswap.h
index 3226669..0e352fc 100644
--- a/libc/sysdeps/linux/ia64/bits/byteswap.h
+++ b/libc/sysdeps/linux/ia64/bits/byteswap.h
@@ -46,6 +46,4 @@
__v; }))
#endif
-#endif
-
#include <bits/byteswap-common.h>
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch 1.0 updated. v1.0.7-3-gea86f1d
by wbx@helium.waldemar-brodkorb.de 15 Oct '15
by wbx@helium.waldemar-brodkorb.de 15 Oct '15
15 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via ea86f1d8885335f2bd38a388d2ab762bd1e29427 (commit)
via 24e4dc6660057aa13c8d021f0dacf4f58bdf5245 (commit)
from eaf262586b97256ccc9ce02e3673d5f5114aae74 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ea86f1d8885335f2bd38a388d2ab762bd1e29427
Author: Bartosz Golaszewski <bartekgola(a)gmail.com>
Date: Wed Oct 14 17:14:01 2015 +0200
syncfs: add system call support
Add support for the syncfs() system call.
Signed-off-by: Bartosz Golaszewski <bartekgola(a)gmail.com>
commit 24e4dc6660057aa13c8d021f0dacf4f58bdf5245
Author: Bartosz Golaszewski <bartekgola(a)gmail.com>
Date: Wed Oct 14 17:14:00 2015 +0200
fanotify: add system call support
Add support for fanotify_init() and fanotify_mark() syscalls. The header
file is taken from glibc.
Signed-off-by: Bartosz Golaszewski <bartekgola(a)gmail.com>
-----------------------------------------------------------------------
Summary of changes:
include/unistd.h | 2 +-
libc/sysdeps/linux/common/Makefile.in | 1 +
libc/sysdeps/linux/common/fanotify.c | 32 ++++++++++++++++++++
libc/sysdeps/linux/common/{getppid.c => syncfs.c} | 10 +++---
.../{x86_64/sys/perm.h => common/sys/fanotify.h} | 25 ++++++++-------
5 files changed, 52 insertions(+), 18 deletions(-)
create mode 100644 libc/sysdeps/linux/common/fanotify.c
copy libc/sysdeps/linux/common/{getppid.c => syncfs.c} (52%)
copy libc/sysdeps/linux/{x86_64/sys/perm.h => common/sys/fanotify.h} (59%)
diff --git a/include/unistd.h b/include/unistd.h
index 3793d2d..4701dab 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1));
extern int fsync (int __fd);
#endif /* Use BSD || X/Open || Unix98. */
-#if 0 /*def __USE_GNU */
+#if __USE_GNU
/* Make all changes done to all files on the file system associated
* with FD actually appear on disk. */
extern int syncfs (int __fd) __THROW;
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 8252598..b75b712 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -27,6 +27,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
eventfd.c \
eventfd_read.c \
eventfd_write.c \
+ fanotify.c \
getrandom.c \
inotify.c \
ioperm.c \
diff --git a/libc/sysdeps/linux/common/fanotify.c b/libc/sysdeps/linux/common/fanotify.c
new file mode 100644
index 0000000..431e0e5
--- /dev/null
+++ b/libc/sysdeps/linux/common/fanotify.c
@@ -0,0 +1,32 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * fanotify interface for uClibc
+ *
+ * Copyright (C) 2015 by Bartosz Golaszewski <bartekgola(a)gmail.com>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <sys/fanotify.h>
+
+#ifdef __NR_fanotify_init
+_syscall2(int, fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
+#endif
+
+#ifdef __NR_fanotify_mark
+# include <bits/wordsize.h>
+# include <fcntl.h>
+
+# if __WORDSIZE == 64
+_syscall5(int, fanotify_mark, int, fanotify_fd, unsigned int, flags,
+ uint64_t, mask, int, dirfd, const char *, pathname)
+# else
+int fanotify_mark(int fanotify_fd, unsigned int flags,
+ uint64_t mask, int dirfd, const char *pathname)
+{
+ return INLINE_SYSCALL(fanotify_mark, 6, fanotify_fd, flags,
+ OFF64_HI_LO(mask), dirfd, pathname);
+}
+# endif
+#endif
diff --git a/libc/sysdeps/linux/common/getppid.c b/libc/sysdeps/linux/common/syncfs.c
similarity index 52%
copy from libc/sysdeps/linux/common/getppid.c
copy to libc/sysdeps/linux/common/syncfs.c
index 9d85661..831f765 100644
--- a/libc/sysdeps/linux/common/getppid.c
+++ b/libc/sysdeps/linux/common/syncfs.c
@@ -1,15 +1,13 @@
/* vi: set sw=4 ts=4: */
/*
- * getppid() for uClibc
- *
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)codepoet.org>
+ * Copyright (C) 2015 Bartosz Golaszewski <bartekgola(a)gmail.com>
*
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
*/
#include <sys/syscall.h>
-#include <unistd.h>
-#ifdef __NR_getppid
-_syscall_noerr0(pid_t, getppid)
+#if defined(__NR_syncfs) && __USE_GNU
+#include <unistd.h>
+_syscall1(int, syncfs, int, fd)
#endif
diff --git a/libc/sysdeps/linux/x86_64/sys/perm.h b/libc/sysdeps/linux/common/sys/fanotify.h
similarity index 59%
copy from libc/sysdeps/linux/x86_64/sys/perm.h
copy to libc/sysdeps/linux/common/sys/fanotify.h
index cbfeaf8..5eec3e5 100644
--- a/libc/sysdeps/linux/x86_64/sys/perm.h
+++ b/libc/sysdeps/linux/common/sys/fanotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,21 +15,24 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SYS_PERM_H
+#ifndef _SYS_FANOTIFY_H
+#define _SYS_FANOTIFY_H 1
-#define _SYS_PERM_H 1
-#include <features.h>
+#include <stdint.h>
+#include <linux/fanotify.h>
-__BEGIN_DECLS
-/* Set port input/output permissions. */
-extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
+__BEGIN_DECLS
+/* Create and initialize fanotify group. */
+extern int fanotify_init (unsigned int __flags, unsigned int __event_f_flags)
+ __THROW;
-/* Change I/O privilege level. */
-extern int iopl (int __level) __THROW;
+/* Add, remove, or modify an fanotify mark on a filesystem object. */
+extern int fanotify_mark (int __fanotify_fd, unsigned int __flags,
+ uint64_t __mask, int __dfd, const char *__pathname)
+ __THROW;
__END_DECLS
-#endif /* _SYS_PERM_H */
+#endif /* sys/fanotify.h */
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch master updated. dfa593d4d881116723a4401b466ea964fb12327b
by wbx@helium.waldemar-brodkorb.de 15 Oct '15
by wbx@helium.waldemar-brodkorb.de 15 Oct '15
15 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via dfa593d4d881116723a4401b466ea964fb12327b (commit)
via b8cfcb3f9b565100c24b0f8de1e31a45dc4370a5 (commit)
from a3312d2264a8f84c854bf9cd0fb05634baba5e87 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit dfa593d4d881116723a4401b466ea964fb12327b
Author: Bartosz Golaszewski <bartekgola(a)gmail.com>
Date: Wed Oct 14 17:14:01 2015 +0200
syncfs: add system call support
Add support for the syncfs() system call.
Signed-off-by: Bartosz Golaszewski <bartekgola(a)gmail.com>
commit b8cfcb3f9b565100c24b0f8de1e31a45dc4370a5
Author: Bartosz Golaszewski <bartekgola(a)gmail.com>
Date: Wed Oct 14 17:14:00 2015 +0200
fanotify: add system call support
Add support for fanotify_init() and fanotify_mark() syscalls. The header
file is taken from glibc.
Signed-off-by: Bartosz Golaszewski <bartekgola(a)gmail.com>
-----------------------------------------------------------------------
Summary of changes:
include/unistd.h | 2 +-
libc/sysdeps/linux/common/Makefile.in | 1 +
libc/sysdeps/linux/common/fanotify.c | 32 ++++++++++++++++++++
libc/sysdeps/linux/common/{getppid.c => syncfs.c} | 10 +++---
.../{x86_64/sys/perm.h => common/sys/fanotify.h} | 25 ++++++++-------
5 files changed, 52 insertions(+), 18 deletions(-)
create mode 100644 libc/sysdeps/linux/common/fanotify.c
copy libc/sysdeps/linux/common/{getppid.c => syncfs.c} (52%)
copy libc/sysdeps/linux/{x86_64/sys/perm.h => common/sys/fanotify.h} (59%)
diff --git a/include/unistd.h b/include/unistd.h
index 3793d2d..4701dab 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1));
extern int fsync (int __fd);
#endif /* Use BSD || X/Open || Unix98. */
-#if 0 /*def __USE_GNU */
+#if __USE_GNU
/* Make all changes done to all files on the file system associated
* with FD actually appear on disk. */
extern int syncfs (int __fd) __THROW;
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 8252598..b75b712 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -27,6 +27,7 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
eventfd.c \
eventfd_read.c \
eventfd_write.c \
+ fanotify.c \
getrandom.c \
inotify.c \
ioperm.c \
diff --git a/libc/sysdeps/linux/common/fanotify.c b/libc/sysdeps/linux/common/fanotify.c
new file mode 100644
index 0000000..431e0e5
--- /dev/null
+++ b/libc/sysdeps/linux/common/fanotify.c
@@ -0,0 +1,32 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * fanotify interface for uClibc
+ *
+ * Copyright (C) 2015 by Bartosz Golaszewski <bartekgola(a)gmail.com>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <sys/fanotify.h>
+
+#ifdef __NR_fanotify_init
+_syscall2(int, fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
+#endif
+
+#ifdef __NR_fanotify_mark
+# include <bits/wordsize.h>
+# include <fcntl.h>
+
+# if __WORDSIZE == 64
+_syscall5(int, fanotify_mark, int, fanotify_fd, unsigned int, flags,
+ uint64_t, mask, int, dirfd, const char *, pathname)
+# else
+int fanotify_mark(int fanotify_fd, unsigned int flags,
+ uint64_t mask, int dirfd, const char *pathname)
+{
+ return INLINE_SYSCALL(fanotify_mark, 6, fanotify_fd, flags,
+ OFF64_HI_LO(mask), dirfd, pathname);
+}
+# endif
+#endif
diff --git a/libc/sysdeps/linux/common/getppid.c b/libc/sysdeps/linux/common/syncfs.c
similarity index 52%
copy from libc/sysdeps/linux/common/getppid.c
copy to libc/sysdeps/linux/common/syncfs.c
index 9d85661..831f765 100644
--- a/libc/sysdeps/linux/common/getppid.c
+++ b/libc/sysdeps/linux/common/syncfs.c
@@ -1,15 +1,13 @@
/* vi: set sw=4 ts=4: */
/*
- * getppid() for uClibc
- *
- * Copyright (C) 2000-2006 by Erik Andersen <andersen(a)codepoet.org>
+ * Copyright (C) 2015 Bartosz Golaszewski <bartekgola(a)gmail.com>
*
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
*/
#include <sys/syscall.h>
-#include <unistd.h>
-#ifdef __NR_getppid
-_syscall_noerr0(pid_t, getppid)
+#if defined(__NR_syncfs) && __USE_GNU
+#include <unistd.h>
+_syscall1(int, syncfs, int, fd)
#endif
diff --git a/libc/sysdeps/linux/x86_64/sys/perm.h b/libc/sysdeps/linux/common/sys/fanotify.h
similarity index 59%
copy from libc/sysdeps/linux/x86_64/sys/perm.h
copy to libc/sysdeps/linux/common/sys/fanotify.h
index cbfeaf8..5eec3e5 100644
--- a/libc/sysdeps/linux/x86_64/sys/perm.h
+++ b/libc/sysdeps/linux/common/sys/fanotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,21 +15,24 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SYS_PERM_H
+#ifndef _SYS_FANOTIFY_H
+#define _SYS_FANOTIFY_H 1
-#define _SYS_PERM_H 1
-#include <features.h>
+#include <stdint.h>
+#include <linux/fanotify.h>
-__BEGIN_DECLS
-/* Set port input/output permissions. */
-extern int ioperm (unsigned long int __from, unsigned long int __num,
- int __turn_on) __THROW;
+__BEGIN_DECLS
+/* Create and initialize fanotify group. */
+extern int fanotify_init (unsigned int __flags, unsigned int __event_f_flags)
+ __THROW;
-/* Change I/O privilege level. */
-extern int iopl (int __level) __THROW;
+/* Add, remove, or modify an fanotify mark on a filesystem object. */
+extern int fanotify_mark (int __fanotify_fd, unsigned int __flags,
+ uint64_t __mask, int __dfd, const char *__pathname)
+ __THROW;
__END_DECLS
-#endif /* _SYS_PERM_H */
+#endif /* sys/fanotify.h */
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
uClibc-ng - small C library for embedded systems branch 1.0 updated. v1.0.7-1-geaf2625
by wbx@helium.waldemar-brodkorb.de 13 Oct '15
by wbx@helium.waldemar-brodkorb.de 13 Oct '15
13 Oct '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via eaf262586b97256ccc9ce02e3673d5f5114aae74 (commit)
from 62cab7dd7389db71bf9d0e2b7e84d5abf966b58a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eaf262586b97256ccc9ce02e3673d5f5114aae74
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Oct 13 08:34:26 2015 +0200
or1k: add missing file
-----------------------------------------------------------------------
Summary of changes:
.../{linuxthreads => linuxthreads.old}/sysdeps/or1k/pt-machine.h | 0
1 file changed, 0 insertions(+), 0 deletions(-)
copy libpthread/{linuxthreads => linuxthreads.old}/sysdeps/or1k/pt-machine.h (100%)
diff --git a/libpthread/linuxthreads/sysdeps/or1k/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/or1k/pt-machine.h
similarity index 100%
copy from libpthread/linuxthreads/sysdeps/or1k/pt-machine.h
copy to libpthread/linuxthreads.old/sysdeps/or1k/pt-machine.h
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0