Merge pull request #454 from ISSOtm/unlocked_windows

Fix mingw build
This commit is contained in:
Eldred Habert
2020-01-08 13:14:13 +01:00
committed by GitHub
8 changed files with 24 additions and 35 deletions

View File

@@ -36,7 +36,7 @@ struct option {
int val;
};
int getopt_long_only(int, char **, const char *, const struct option *, int *);
int musl_getopt_long_only(int, char **, const char *, const struct option *, int *);
#define no_argument 0
#define required_argument 1

View File

@@ -324,8 +324,8 @@ int main(int argc, char *argv[])
newopt = CurrentOptions;
while ((ch = getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
while ((ch = musl_getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
switch (ch) {
case 'b':
if (strlen(optarg) == 2) {

20
src/extern/getopt.c vendored
View File

@@ -33,7 +33,7 @@
int __optpos, __optreset;
void __getopt_msg(const char *a, const char *b, const char *c, size_t l)
void musl__getopt_msg(const char *a, const char *b, const char *c, size_t l)
{
FILE *f = stderr;
(void)(fputs(a, f)>=0
@@ -52,9 +52,9 @@ static void permute(char **argv, int dest, int src)
av[dest] = tmp;
}
static int __getopt_long_core(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly);
static int musl__getopt_long_core(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly);
static int __getopt_long(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly)
static int musl__getopt_long(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly)
{
int ret, skipped, resumed;
if (!optind || __optreset) {
@@ -73,7 +73,7 @@ static int __getopt_long(int argc, char **argv, const char *optstring, const str
optind = i;
}
resumed = optind;
ret = __getopt_long_core(argc, argv, optstring, longopts, idx, longonly);
ret = musl__getopt_long_core(argc, argv, optstring, longopts, idx, longonly);
if (resumed > skipped) {
int i, cnt = optind-resumed;
for (i=0; i<cnt; i++)
@@ -83,7 +83,7 @@ static int __getopt_long(int argc, char **argv, const char *optstring, const str
return ret;
}
static int __getopt_long_core(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly)
static int musl__getopt_long_core(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx, int longonly)
{
optarg = 0;
if (longopts && argv[optind][0] == '-' &&
@@ -128,7 +128,7 @@ static int __getopt_long_core(int argc, char **argv, const char *optstring, cons
optopt = longopts[i].val;
if (colon || !opterr)
return '?';
__getopt_msg(argv[0],
musl__getopt_msg(argv[0],
": option does not take an argument: ",
longopts[i].name,
strlen(longopts[i].name));
@@ -140,7 +140,7 @@ static int __getopt_long_core(int argc, char **argv, const char *optstring, cons
optopt = longopts[i].val;
if (colon) return ':';
if (!opterr) return '?';
__getopt_msg(argv[0],
musl__getopt_msg(argv[0],
": option requires an argument: ",
longopts[i].name,
strlen(longopts[i].name));
@@ -158,7 +158,7 @@ static int __getopt_long_core(int argc, char **argv, const char *optstring, cons
if (argv[optind][1] == '-') {
optopt = 0;
if (!colon && opterr)
__getopt_msg(argv[0], cnt ?
musl__getopt_msg(argv[0], cnt ?
": option is ambiguous: " :
": unrecognized option: ",
argv[optind]+2,
@@ -170,7 +170,7 @@ static int __getopt_long_core(int argc, char **argv, const char *optstring, cons
return getopt(argc, argv, optstring);
}
int getopt_long_only(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx)
int musl_getopt_long_only(int argc, char **argv, const char *optstring, const struct option *longopts, int *idx)
{
return __getopt_long(argc, argv, optstring, longopts, idx, 1);
return musl__getopt_long(argc, argv, optstring, longopts, idx, 1);
}

View File

@@ -108,8 +108,8 @@ int main(int argc, char *argv[])
int version = 0; /* mask ROM version number */
int padvalue = 0; /* to pad the rom with if it changes size */
while ((ch = getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
while ((ch = musl_getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
switch (ch) {
case 'C':
coloronly = true;

View File

@@ -87,8 +87,8 @@ int main(int argc, char *argv[])
depth = 2;
while ((ch = getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
while ((ch = musl_getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
switch (ch) {
case 'A':
opts.attrmapout = true;

View File

@@ -114,8 +114,8 @@ int main(int argc, char *argv[])
unsigned long value; /* For storing `strtoul`'s return value */
/* Parse options */
while ((optionChar = getopt_long_only(argc, argv, optstring, longopts,
NULL)) != -1) {
while ((optionChar = musl_getopt_long_only(argc, argv, optstring,
longopts, NULL)) != -1) {
switch (optionChar) {
case 'd':
isDmgMode = true;

View File

@@ -150,9 +150,8 @@ static void writeBank(struct SortedSection *bankSections, uint16_t baseOffset,
/* Output padding up to the next SECTION */
while (offset + baseOffset < section->org) {
putc_unlocked(overlayFile ? getc_unlocked(overlayFile)
: padValue,
outputFile);
putc(overlayFile ? getc(overlayFile) : padValue,
outputFile);
offset++;
}
@@ -162,7 +161,7 @@ static void writeBank(struct SortedSection *bankSections, uint16_t baseOffset,
if (overlayFile) {
/* Skip bytes even with pipes */
for (uint16_t i = 0; i < section->size; i++)
getc_unlocked(overlayFile);
getc(overlayFile);
}
offset += section->size;
@@ -170,9 +169,7 @@ static void writeBank(struct SortedSection *bankSections, uint16_t baseOffset,
}
while (offset < size) {
putc_unlocked(overlayFile ? getc_unlocked(overlayFile)
: padValue,
outputFile);
putc(overlayFile ? getc(overlayFile) : padValue, outputFile);
offset++;
}
}
@@ -188,10 +185,6 @@ static void writeROM(void)
checkOverlay();
if (outputFile) {
flockfile(outputFile);
if (overlayFile)
flockfile(overlayFile);
if (sections[SECTTYPE_ROM0].nbBanks > 0)
writeBank(sections[SECTTYPE_ROM0].banks[0].sections,
0x0000, 0x4000);
@@ -199,10 +192,6 @@ static void writeROM(void)
for (uint32_t i = 0 ; i < sections[SECTTYPE_ROMX].nbBanks; i++)
writeBank(sections[SECTTYPE_ROMX].banks[i].sections,
0x4000, 0x4000);
if (overlayFile)
funlockfile(overlayFile);
funlockfile(outputFile);
}
closeFile(outputFile);

View File

@@ -164,7 +164,7 @@ static char const * const commands[] = {
static int readChar(FILE *file)
{
int curchar = getc_unlocked(file);
int curchar = getc(file);
if (curchar == EOF && ferror(file))
err(1, "%s(%u): Unexpected error in %s", linkerScriptName,