Known issues release 2

From liblfds.org
Jump to navigation Jump to search

Current

1. The Windows DLL build links to wrong run-time library. The DLL build on Windows has the MS run-time library names for release and debug swapped. Building a release build links with the debug run-time library and building a debug build links to the release run-time library.

The makefile.windows file currently looks like this;

ifeq ($(MAKECMDGOALS),dllrel)
  CFLAGS  = $(CBASE) $(CFREL) /MD
  LFLAGS  = $(LFBASE) $(LFREL)
  CLIB    = msvcrtd.lib
endif

ifeq ($(MAKECMDGOALS),dlldbg)
  CFLAGS  = $(CBASE) $(CFDBG) /MDd
  LFLAGS  = $(LFBASE) $(LFDBG)
  CLIB    = msvcrt.lib
endif

To fix it, it should look like this;

ifeq ($(MAKECMDGOALS),dllrel)
  CFLAGS  = $(CBASE) $(CFREL) /MD
  LFLAGS  = $(LFBASE) $(LFREL)
  CLIB    = msvcrt.lib
endif

ifeq ($(MAKECMDGOALS),dlldbg)
  CFLAGS  = $(CBASE) $(CFDBG) /MDd
  LFLAGS  = $(LFBASE) $(LFDBG)
  CLIB    = msvcrtd.lib
endif

2. Every data structure is unreliable when compiled for release. This is due to the incorrect decleration of pointer types, such that once the optimizer is used, the compiler is incorrectly optimizing, which leads to completely unpredictable results! this doesn't show up at all on x86/x64 with MSVC, probably because that platform is in some ways extremely conservative with regard to optimization due to legacy compatibility requirements.

Revoked

No revocations.

History

Not recorded for this release.