Bugs item #2821869, was opened at 2009-07-15 15:42 Message generated for change (Settings changed) made by dannybackx You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=865514&aid=2821869&group_id=173455
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: w32api Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: İsmail Dönmez (namtrac) Assigned to: Danny Backx (dannybackx) Summary: atoll should be defined even when strict ansi is enabled Initial Comment: When -std=c99 flag is invoked gcc enables __STRICT_ANSI__ and this hides the definition of atoll() and related functions (see stdlib.h) but atoll() and related functions like strtoll is part of C99 standard and should be enabled even if __STRICT_ANSI__ is enabled. ---------------------------------------------------------------------- Comment By: İsmail Dönmez (namtrac) Date: 2009-07-20 13:45 Message: This fixed the problem with ffmpeg, thanks! ---------------------------------------------------------------------- Comment By: Danny Backx (dannybackx) Date: 2009-07-20 13:31 Message: Should be fixed now. ---------------------------------------------------------------------- Comment By: İsmail Dönmez (namtrac) Date: 2009-07-20 12:23 Message: Latest SVN does not compile: /root/cegcc/mingw/include/stdlib.h:595: error: redefinition of 'atoll' /root/cegcc/mingw/include/stdlib.h:567: error: previous definition of 'atoll' was here In file included from /root/cegcc/mingw/dllcrt1.c:10: /root/cegcc/mingw/include/stdlib.h:595: error: redefinition of 'atoll' /root/cegcc/mingw/include/stdlib.h:567: error: previous definition of 'atoll' was here ---------------------------------------------------------------------- Comment By: Danny Backx (dannybackx) Date: 2009-07-20 12:15 Message: Apologies, I somehow got logged out of SF. The "nobody" entries below are mine ;-) ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-07-20 12:14 Message: Two fixes applied, can you check whether this new situation works for you ? ---------------------------------------------------------------------- Comment By: İsmail Dönmez (namtrac) Date: 2009-07-20 11:48 Message: I agree it should be invisible and it should be provided by a library. So, your solution looks fine. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-07-20 11:45 Message: Hmm. When I look deeper, there are two possible solutions. 1. The src/mingw/include/stdlib.h contains a definition for an inline version of atoll. This could be moved to a place where it remains visible, as Ismail suggests. 2. There's also an implementation in src/mingw/mingwex/atoll.c . The build can be tweaked to include it in libmingwex.a . They call the same function (_atoi64) to do the job. I feel like doing both, they should not be incompatible and this would catch cases where the inline function is missed. Opinions ? ---------------------------------------------------------------------- Comment By: İsmail Dönmez (namtrac) Date: 2009-07-20 10:27 Message: This might be due to their linker flags, they use: arm-mingw32ce-gcc -shared -Wl,--output-def,libavformat/avformat-52.def -Wl,--out-implib,libavformat/libavformat.dll.a -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base ---------------------------------------------------------------------- Comment By: İsmail Dönmez (namtrac) Date: 2009-07-20 10:17 Message: When compiling ffmpeg with networking support I get the following error: libavformat/http.o:http.c:(.text+0x640): relocation truncated to fit: ARM_26 against undefined symbol `atoll' File is compiled with the following flags: arm-mingw32ce-gcc -DHAVE_AV_CONFIG_H -I. -I"/root/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/opt/mingw32ce/include -march=armv4t -std=c99 -fno-common -fomit-frame-pointer -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -Wundef -O3 -fno-math-errno -fno-tree-vectorize -c -o libavformat/http.o libavformat/http.c So I thought it must be __STRICT_ANSI__ breaking atoll. ---------------------------------------------------------------------- Comment By: Danny Backx (dannybackx) Date: 2009-07-20 08:31 Message: For which functions exactly should this be changed ? I find references to atoll being added, and strtoll. But strtoll looks right in stdlib.h, even though you mention it. Maybe only atoll needs changing ? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=865514&aid=2821869&group_id=173455 ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Cegcc-devel mailing list Cegcc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cegcc-devel