Skip to content

Commit

Permalink
Merge pull request #2024 from DiUS/sjson_undefined_symbol_fix
Browse files Browse the repository at this point in the history
Sjson undefined symbol fix
  • Loading branch information
Johny Mattsson authored Jul 4, 2017
2 parents 4ce2d68 + ea4d337 commit 0c315ed
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 8 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ endef

$(BINODIR)/%.bin: $(IMAGEODIR)/%.out
@mkdir -p $(BINODIR)
@$(NM) $< | grep -w U && { echo "Firmware has undefined (but unused) symbols!"; exit 1; } || true
$(ESPTOOL) elf2image --flash_mode dio --flash_freq 40m $< -o $(FIRMWAREDIR)

#############################################################
Expand Down
10 changes: 6 additions & 4 deletions app/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ SUBDIRS= \
websocket \
swTimer \
misc \
pm \
pm \
sjson \


endif # } PDIR
Expand Down Expand Up @@ -94,14 +95,15 @@ COMPONENTS_eagle.app.v6 = \
dhtlib/libdhtlib.a \
tsl2561/tsl2561lib.a \
http/libhttp.a \
pm/libpm.a \
pm/libpm.a \
websocket/libwebsocket.a \
esp-gdbstub/libgdbstub.a \
net/libnodemcu_net.a \
mbedtls/libmbedtls.a \
mbedtls/libmbedtls.a \
modules/libmodules.a \
swTimer/libswtimer.a \
misc/libmisc.a \
misc/libmisc.a \
sjson/libsjson.a \


# Inspect the modules library and work out which modules need to be linked.
Expand Down
6 changes: 2 additions & 4 deletions app/modules/sjson.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@
#include "c_limits.h"
#endif

#define JSONSL_STATE_USER_FIELDS int lua_object_ref; int used_count;
#define JSONSL_NO_JPR

#include "jsonsl.c"
#include "json_config.h"
#include "jsonsl.h"

#define LUA_SJSONLIBNAME "sjson"

Expand Down
47 changes: 47 additions & 0 deletions app/sjson/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
# CSRCS (all "C" files in the dir)
# SUBDIRS (all subdirs with a Makefile)
# GEN_LIBS - list of libs to be generated ()
# GEN_IMAGES - list of images to be generated ()
# COMPONENTS_xxx - a list of libs/objs in the form
# subdir/lib to be extracted and rolled up into
# a generated lib/image xxx.a ()
#
ifndef PDIR
GEN_LIBS = libsjson.a
endif

STD_CFLAGS=-std=gnu11 -Wimplicit

#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
# makefile at its root level - these are then overridden
# for a subtree within the makefile rooted therein
#
DEFINES += -include memcompat.h -include json_config.h

#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
# corresponding to the common APIs applicable to modules
# rooted at that subtree. Accordingly, the INCLUDE PATH
# of a module can only contain the include directories up
# its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#

INCLUDES := $(INCLUDES) -I $(PDIR)include
INCLUDES += -I ./
INCLUDES += -I ./include
INCLUDES += -I ../include
INCLUDES += -I ../../include
PDIR := ../$(PDIR)
sinclude $(PDIR)Makefile

7 changes: 7 additions & 0 deletions app/sjson/json_config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#ifndef __JSON_CONFIG_H__
#define __JSON_CONFIG_H__

#define JSONSL_STATE_USER_FIELDS int lua_object_ref; int used_count;
#define JSONSL_NO_JPR

#endif
11 changes: 11 additions & 0 deletions app/sjson/memcompat.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#ifndef __MEMCOMPAT_H__
#define __MEMCOMPAT_H__

#include "c_types.h"
#include "mem.h"

static inline void *malloc(size_t sz) { return os_malloc(sz); }
static inline void free(void *p) { return os_free(p); }
static inline void *calloc(size_t n, size_t sz) { return os_zalloc(n*sz); }

#endif

0 comments on commit 0c315ed

Please sign in to comment.