From 85d5d321e23d51630f9df5b61529de49dfd07cad Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Tue, 10 Jul 2018 10:38:32 -0400 Subject: [PATCH 1/2] Add STATIC_BUILD make flag for mpy-cross to build a static executable --- mpy-cross/Makefile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mpy-cross/Makefile b/mpy-cross/Makefile index 53ce50c7ff63d..7764d5bef947c 100644 --- a/mpy-cross/Makefile +++ b/mpy-cross/Makefile @@ -35,6 +35,13 @@ CWARN += -Wpointer-arith -Wuninitialized CFLAGS = $(INC) $(CWARN) -std=gnu99 $(CFLAGS_MOD) $(COPT) $(CFLAGS_EXTRA) CFLAGS += -fdata-sections -ffunction-sections -fno-asynchronous-unwind-tables +# Build a static executable. +# Useful for Windows builds, etc., that must run on multiple operating system versions. +ifdef STATIC_BUILD +CFLAGS += -static -static-libgcc -static-libstdc++ +endif + + # Debugging/Optimization ifdef DEBUG CFLAGS += -g @@ -57,6 +64,10 @@ LDFLAGS_ARCH = -Wl,-Map=$@.map,--cref -Wl,--gc-sections endif LDFLAGS = $(LDFLAGS_MOD) $(LDFLAGS_ARCH) -lm $(LDFLAGS_EXTRA) +ifdef STATIC_BUILD +LDFLAGS += -static -static-libgcc -static-libstdc++ +endif + # source files SRC_C = \ main.c \ From d305e7d6cfea2e336784d756997e4da725041f83 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Tue, 10 Jul 2018 22:29:36 -0400 Subject: [PATCH 2/2] handle errno defns for mingw and use correct executable name --- .gitignore | 4 ++++ mpy-cross/Makefile | 6 ++++++ mpy-cross/mpconfigport.h | 44 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/.gitignore b/.gitignore index aa4ff6dab2c27..4f4c91d82edd3 100644 --- a/.gitignore +++ b/.gitignore @@ -58,4 +58,8 @@ TAGS ################# *.orig +# Emacs backup files +#################### +*~ + *.DS_Store diff --git a/mpy-cross/Makefile b/mpy-cross/Makefile index 7764d5bef947c..c9b6cca0f328d 100644 --- a/mpy-cross/Makefile +++ b/mpy-cross/Makefile @@ -14,7 +14,13 @@ endif include ../py/mkenv.mk # define main target + +ifeq ($(OS),Windows_NT) +# Detect a MINGW32 build, and change the name of the final executable. +PROG = mpy-cross.exe +else PROG = mpy-cross +endif # qstr definitions (must come before including py.mk) QSTR_DEFS = qstrdefsport.h diff --git a/mpy-cross/mpconfigport.h b/mpy-cross/mpconfigport.h index e227d1be5484f..04f9a24d5c698 100644 --- a/mpy-cross/mpconfigport.h +++ b/mpy-cross/mpconfigport.h @@ -85,6 +85,50 @@ #define MICROPY_PY_IO (0) #define MICROPY_PY_SYS (0) +// MINGW only handles these errno names. +#ifdef __MINGW32__ +#define MICROPY_PY_UERRNO_LIST \ + X(EPERM) \ + X(ENOENT) \ + X(ESRCH) \ + X(EINTR) \ + X(EIO) \ + X(ENXIO) \ + X(E2BIG) \ + X(ENOEXEC) \ + X(EBADF) \ + X(ECHILD) \ + X(EAGAIN) \ + X(ENOMEM) \ + X(EACCES) \ + X(EFAULT) \ + X(EBUSY) \ + X(EEXIST) \ + X(EXDEV) \ + X(ENODEV) \ + X(ENOTDIR) \ + X(EISDIR) \ + X(EINVAL) \ + X(ENFILE) \ + X(EMFILE) \ + X(ENOTTY) \ + X(EFBIG) \ + X(ENOSPC) \ + X(ESPIPE) \ + X(EROFS) \ + X(EMLINK) \ + X(EPIPE) \ + X(EDOM) \ + X(ERANGE) \ + X(EDEADLOCK) \ + X(EDEADLK) \ + X(ENAMETOOLONG) \ + X(ENOLCK) \ + X(ENOSYS) \ + X(ENOTEMPTY) \ + X(EILSEQ) +#endif + // type definitions for the specific machine #ifdef __LP64__ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy