diff options
author | Vojtech Kral <vojtech@kral.hk> | 2018-05-07 13:05:51 +0300 |
---|---|---|
committer | Vojtech Kral <vojtech@kral.hk> | 2018-05-21 19:58:22 +0300 |
commit | 3d09f2a980af4df03fb8950537d1bcb92f87a94d (patch) | |
tree | a50b31fae667368a32c8f38077ac04168b54d8d2 /xs/src/avrdude | |
parent | 07817c8ee53e1690d0de8e848fc4b42388b630a5 (diff) |
avrdude: bugfixes
Diffstat (limited to 'xs/src/avrdude')
-rw-r--r-- | xs/src/avrdude/CMakeLists.txt | 1 | ||||
-rw-r--r-- | xs/src/avrdude/main.c | 7 | ||||
-rw-r--r-- | xs/src/avrdude/wiring.c | 4 |
3 files changed, 9 insertions, 3 deletions
diff --git a/xs/src/avrdude/CMakeLists.txt b/xs/src/avrdude/CMakeLists.txt index c74884057..b971452ee 100644 --- a/xs/src/avrdude/CMakeLists.txt +++ b/xs/src/avrdude/CMakeLists.txt @@ -1,6 +1,7 @@ remove_definitions(-D_UNICODE -DUNICODE) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(AVRDUDE_SOURCES diff --git a/xs/src/avrdude/main.c b/xs/src/avrdude/main.c index 03c237d75..02feb079b 100644 --- a/xs/src/avrdude/main.c +++ b/xs/src/avrdude/main.c @@ -45,6 +45,8 @@ #if !defined(WIN32NATIVE) # include <sys/time.h> +# include <sys/types.h> +# include <sys/stat.h> #endif #include "avrdude.h" @@ -91,7 +93,7 @@ avrdude_message_handler_t avrdude_message_handler_set(avrdude_message_handler_t int avrdude_message(const int msglvl, const char *format, ...) { static const char *format_error = "avrdude_message: Could not format message"; - + int rc = 0; va_list ap; if (verbose >= msglvl) { @@ -478,7 +480,7 @@ int avrdude_main(int argc, char * argv [], const char *sys_config) // strcat(sys_config, "/"); // strcat(sys_config, "avrdude.conf"); -// usr_config[0] = 0; + usr_config[0] = 0; // homedir = getenv("HOME"); // if (homedir != NULL) { // strcpy(usr_config, homedir); @@ -507,6 +509,7 @@ int avrdude_main(int argc, char * argv [], const char *sys_config) /* * process command line arguments */ + optind = 1; // Reset getopt, makes it possible to use it multiple times while ((ch = getopt(argc,argv,"?b:B:c:C:DeE:Fi:l:np:OP:qstU:uvVx:yY:")) != -1) { switch (ch) { diff --git a/xs/src/avrdude/wiring.c b/xs/src/avrdude/wiring.c index 1dc4d6a68..395459762 100644 --- a/xs/src/avrdude/wiring.c +++ b/xs/src/avrdude/wiring.c @@ -151,7 +151,9 @@ static int wiring_open(PROGRAMMER * pgm, char * port) strcpy(pgm->port, port); pinfo.baud = pgm->baudrate ? pgm->baudrate: 115200; - serial_open(port, pinfo, &pgm->fd); + if (serial_open(port, pinfo, &pgm->fd) < 0) { + return -1; + } /* If we have a snoozetime, then we wait and do NOT toggle DTR/RTS */ |