GNU used several extensions that were incompatible with C99 and POSIX,
so they used alternate names for the standard functions.
The result is that we need these to run standards-conformant programs
that were linked with glibc.
13 files changed:
+
+weak_alias(getopt, __posix_getopt);
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
int fscanf(FILE *restrict f, const char *restrict fmt, ...)
{
int fscanf(FILE *restrict f, const char *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(__isoc99_fscanf);
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
int fwscanf(FILE *restrict f, const wchar_t *restrict fmt, ...)
{
int fwscanf(FILE *restrict f, const wchar_t *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(fwscanf,__isoc99_fwscanf);
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
int scanf(const char *restrict fmt, ...)
{
int scanf(const char *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(scanf,__isoc99_scanf);
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
int sscanf(const char *restrict s, const char *restrict fmt, ...)
{
int sscanf(const char *restrict s, const char *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(sscanf,__isoc99_sscanf);
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
int swscanf(const wchar_t *restrict s, const wchar_t *restrict fmt, ...)
{
int swscanf(const wchar_t *restrict s, const wchar_t *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(swscanf,__isoc99_swscanf);
#include "shgetc.h"
#include "intscan.h"
#include "floatscan.h"
#include "shgetc.h"
#include "intscan.h"
#include "floatscan.h"
#define SIZE_hh -2
#define SIZE_h -1
#define SIZE_hh -2
#define SIZE_h -1
FUNLOCK(f);
return matches;
}
FUNLOCK(f);
return matches;
}
+
+weak_alias(vfwscanf,__isoc99_vfwscanf);
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
int vscanf(const char *restrict fmt, va_list ap)
{
return vfscanf(stdin, fmt, ap);
}
int vscanf(const char *restrict fmt, va_list ap)
{
return vfscanf(stdin, fmt, ap);
}
+
+weak_alias(vscanf,__isoc99_vscanf);
static size_t do_read(FILE *f, unsigned char *buf, size_t len)
{
static size_t do_read(FILE *f, unsigned char *buf, size_t len)
{
};
return vfscanf(&f, fmt, ap);
}
};
return vfscanf(&f, fmt, ap);
}
+
+weak_alias(vsscanf,__isoc99_vsscanf);
#include <wchar.h>
static size_t wstring_read(FILE *f, unsigned char *buf, size_t len)
#include <wchar.h>
static size_t wstring_read(FILE *f, unsigned char *buf, size_t len)
};
return vfwscanf(&f, fmt, ap);
}
};
return vfwscanf(&f, fmt, ap);
}
+
+weak_alias(vswscanf,__isoc99_vswscanf);
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
int vwscanf(const wchar_t *restrict fmt, va_list ap)
{
return vfwscanf(stdin, fmt, ap);
}
int vwscanf(const wchar_t *restrict fmt, va_list ap)
{
return vfwscanf(stdin, fmt, ap);
}
+
+weak_alias(vwscanf,__isoc99_vwscanf);
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
int wscanf(const wchar_t *restrict fmt, ...)
{
int wscanf(const wchar_t *restrict fmt, ...)
{
va_end(ap);
return ret;
}
va_end(ap);
return ret;
}
+
+weak_alias(wscanf,__isoc99_wscanf);
#include <string.h>
#include <errno.h>
#include <string.h>
#include <errno.h>
int strerror_r(int err, char *buf, size_t buflen)
{
int strerror_r(int err, char *buf, size_t buflen)
{
memcpy(buf, msg, l+1);
return 0;
}
memcpy(buf, msg, l+1);
return 0;
}
+
+weak_alias(strerror_r, __xpg_strerror_r);