[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16147] trunk/blender: Win64: please check my changes if you ran across them ; ) But should be fine since no additional crashes were reported!

Joshua Leung aligorith at gmail.com
Mon Aug 18 05:03:07 CEST 2008


Hi,

This is causing major compiling problems here on Win32 (XP).
- using scons/mingw (i.e. gcc 3.4.4, scons 0.96.1):
compiling breaks down in guardedmalloc. It seems that somehow, uintptr_t
doesn't get defined for some or rather reason. There are likely many more
such places

- using cmake/mingw (I've made some local patches to make this work at all):
compiling breaks down in bf_kernel with similar errors

Regards,
Joshua




On Mon, Aug 18, 2008 at 5:08 AM, Daniel Genrich <daniel.genrich at gmx.net>wrote:

> Revision: 16147
>
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16147
> Author:   genscher
> Date:     2008-08-17 19:08:00 +0200 (Sun, 17 Aug 2008)
>
> Log Message:
> -----------
> Win64: please check my changes if you ran across them ;) But should be fine
> since no additional crashes were reported!
>
> Modified Paths:
> --------------
>    trunk/blender/intern/guardedalloc/intern/mallocn.c
>    trunk/blender/intern/guardedalloc/intern/mmap_win.c
>    trunk/blender/intern/guardedalloc/mmap_win.h
>    trunk/blender/intern/opennl/superlu/smemory.c
>    trunk/blender/release/datafiles/datatoc.c
>    trunk/blender/source/blender/blenkernel/BKE_customdata.h
>    trunk/blender/source/blender/blenkernel/BKE_endian.h
>    trunk/blender/source/blender/blenkernel/BKE_utildefines.h
>    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
>    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
>    trunk/blender/source/blender/blenkernel/intern/cloth.c
>    trunk/blender/source/blender/blenkernel/intern/displist.c
>    trunk/blender/source/blender/blenkernel/intern/image.c
>    trunk/blender/source/blender/blenkernel/intern/implicit.c
>    trunk/blender/source/blender/blenlib/BLI_editVert.h
>    trunk/blender/source/blender/blenlib/intern/BLI_ghash.c
>    trunk/blender/source/blender/blenlib/intern/fileops.c
>    trunk/blender/source/blender/blenlib/intern/psfont.c
>    trunk/blender/source/blender/blenlib/intern/util.c
>    trunk/blender/source/blender/blenpluginapi/intern/pluginapi.c
>    trunk/blender/source/blender/imbuf/intern/cineon/cineonlib.c
>    trunk/blender/source/blender/imbuf/intern/cineon/dpxlib.c
>    trunk/blender/source/blender/imbuf/intern/cineon/logImageCore.h
>    trunk/blender/source/blender/imbuf/intern/cineon/logmemfile.c
>    trunk/blender/source/blender/imbuf/intern/cineon/logmemfile.h
>    trunk/blender/source/blender/imbuf/intern/scaling.c
>    trunk/blender/source/blender/include/BIF_meshtools.h
>    trunk/blender/source/blender/makesdna/intern/makesdna.c
>    trunk/blender/source/blender/radiosity/CMakeLists.txt
>    trunk/blender/source/blender/radiosity/SConscript
>    trunk/blender/source/blender/radiosity/intern/source/Makefile
>    trunk/blender/source/blender/radiosity/intern/source/radnode.c
>    trunk/blender/source/blender/radiosity/intern/source/radpreprocess.c
>    trunk/blender/source/blender/render/CMakeLists.txt
>    trunk/blender/source/blender/render/SConscript
>    trunk/blender/source/blender/render/intern/include/render_types.h
>    trunk/blender/source/blender/render/intern/source/occlusion.c
>    trunk/blender/source/blender/render/intern/source/pipeline.c
>    trunk/blender/source/blender/render/intern/source/rendercore.c
>    trunk/blender/source/blender/render/intern/source/shadbuf.c
>    trunk/blender/source/blender/render/intern/source/strand.c
>    trunk/blender/source/blender/render/intern/source/zbuf.c
>    trunk/blender/source/blender/src/buttons_editing.c
>    trunk/blender/source/blender/src/buttons_scene.c
>    trunk/blender/source/blender/src/drawmesh.c
>    trunk/blender/source/blender/src/drawobject.c
>    trunk/blender/source/blender/src/editkey.c
>    trunk/blender/source/blender/src/editmesh_mods.c
>    trunk/blender/source/blender/src/editmesh_tools.c
>    trunk/blender/source/blender/src/header_info.c
>    trunk/blender/source/blender/src/header_script.c
>    trunk/blender/source/blender/src/interface.c
>    trunk/blender/source/blender/src/meshlaplacian.c
>    trunk/blender/source/blender/src/meshtools.c
>    trunk/blender/source/blender/src/parametrizer.c
>    trunk/blender/source/blender/src/parametrizer.h
>    trunk/blender/source/blender/src/parametrizer_intern.h
>    trunk/blender/source/blender/src/renderwin.c
>    trunk/blender/source/blender/src/space.c
>    trunk/blender/source/blender/src/toolbox.c
>    trunk/blender/source/blender/src/transform_conversions.c
>    trunk/blender/source/blender/yafray/intern/export_Plugin.cpp
>    trunk/blender/source/gameengine/Ketsji/KX_MaterialIpoController.cpp
>    trunk/blender/source/kernel/CMakeLists.txt
>    trunk/blender/source/kernel/SConscript
>    trunk/blender/source/kernel/gen_system/GEN_HashedPtr.cpp
>    trunk/blender/source/kernel/gen_system/Makefile
>
> Added Paths:
> -----------
>    trunk/blender/intern/guardedalloc/BLO_sys_types.h
>    trunk/blender/intern/opennl/superlu/BLO_sys_types.h
>
> Added: trunk/blender/intern/guardedalloc/BLO_sys_types.h
> ===================================================================
> --- trunk/blender/intern/guardedalloc/BLO_sys_types.h
>     (rev 0)
> +++ trunk/blender/intern/guardedalloc/BLO_sys_types.h   2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -0,0 +1,112 @@
> +/**
> + * $Id$
> + *
> + * ***** BEGIN GPL LICENSE BLOCK *****
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software Foundation,
> + * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
> + *
> + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
> + * All rights reserved.
> + *
> + * The Original Code is: all of this file.
> + *
> + * Contributor(s): none yet.
> + *
> + * ***** END GPL LICENSE BLOCK *****
> + * A platform-independent definition of [u]intXX_t
> + * Plus the accompanying header include for htonl/ntohl
> + *
> + * This file includes <sys/types.h> to define [u]intXX_t types, where
> + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this
> + * file.
> + * - Windows uses __intXX compiler-builtin types. These are signed,
> + *   so we have to flip the signs.
> + * For these rogue platforms, we make the typedefs ourselves.
> + *
> + */
> +
> +/*
> +// DG: original BLO_sys_types.h is in source/blender/blenkernel
> +// but is not allowed be accessed here because of bad-level-call
> +*/
> +
> +#ifndef BLO_SYS_TYPES_H
> +#define BLO_SYS_TYPES_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#ifdef FREE_WINDOWS
> +typedef unsigned char uint8_t;
> +typedef unsigned int uint32_t;
> +#endif
> +
> +#if defined(_WIN32) && !defined(FREE_WINDOWS)
> +
> +/* The __intXX are built-in types of the visual complier! So we don't
> + * need to include anything else here. */
> +
> +typedef signed __int8  int8_t;
> +typedef signed __int16 int16_t;
> +typedef signed __int32 int32_t;
> +typedef signed __int64 int64_t;
> +
> +typedef unsigned __int8  uint8_t;
> +typedef unsigned __int16 uint16_t;
> +typedef unsigned __int32 uint32_t;
> +typedef unsigned __int64 uint64_t;
> +
> +#ifdef _WIN64
> +typedef __int64 intptr_t;
> +typedef unsigned __int64 uintptr_t;
> +#else
> +typedef long intptr_t;
> +typedef unsigned long uintptr_t;
> +#endif
> +
> +#elif defined(__linux__)
> +
> +       /* Linux-i386, Linux-Alpha, Linux-ppc */
> +#include <stdint.h>
> +
> +#elif defined (__APPLE__)
> +
> +#include <inttypes.h>
> +
> +#else
> +
> +       /* FreeBSD, Irix, Solaris */
> +#include <sys/types.h>
> +
> +#endif /* ifdef platform for types */
> +
> +#ifdef _WIN32
> +#define htonl(x) correctByteOrder(x)
> +#define ntohl(x) correctByteOrder(x)
> +#elif defined (__FreeBSD__) || defined (__OpenBSD__)
> +#include <sys/param.h>
> +#elif defined (__APPLE__)
> +#include <sys/types.h>
> +#else  /* irix sun linux */
> +#include <netinet/in.h>
> +#endif /* ifdef platform for htonl/ntohl */
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* eof */
> +
>
> Modified: trunk/blender/intern/guardedalloc/intern/mallocn.c
> ===================================================================
> --- trunk/blender/intern/guardedalloc/intern/mallocn.c  2008-08-17 16:36:37
> UTC (rev 16146)
> +++ trunk/blender/intern/guardedalloc/intern/mallocn.c  2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -49,6 +49,8 @@
>
>  #include "MEM_guardedalloc.h"
>
> +#include "BLO_sys_types.h" // needed for intptr_t
> +
>  /* ---------------------------------------------------------------------
> */
>  /* Data definition
> */
>  /* ---------------------------------------------------------------------
> */
> @@ -112,7 +114,7 @@
>
>
>  volatile int totblock= 0;
> -volatile unsigned long mem_in_use= 0, mmap_in_use= 0;
> +volatile uintptr_t mem_in_use= 0, mmap_in_use= 0;
>
>  static volatile struct localListBase _membase;
>  static volatile struct localListBase *membase = &_membase;
> @@ -335,7 +337,7 @@
>  /* Memory statistics print */
>  typedef struct MemPrintBlock {
>        const char *name;
> -       unsigned long len;
> +       uintptr_t len;
>        int items;
>  } MemPrintBlock;
>
> @@ -485,14 +487,14 @@
>                return(-1);
>        }
>
> -       if(sizeof(long)==8) {
> -               if (((long) memh) & 0x7) {
> +       if(sizeof(intptr_t)==8) {
> +               if (((intptr_t) memh) & 0x7) {
>                        MemorY_ErroR("free","attempt to free illegal
> pointer");
>                        return(-1);
>                }
>        }
>        else {
> -               if (((long) memh) & 0x3) {
> +               if (((intptr_t) memh) & 0x3) {
>                        MemorY_ErroR("free","attempt to free illegal
> pointer");
>                        return(-1);
>                }
>
> Modified: trunk/blender/intern/guardedalloc/intern/mmap_win.c
> ===================================================================
> --- trunk/blender/intern/guardedalloc/intern/mmap_win.c 2008-08-17 16:36:37
> UTC (rev 16146)
> +++ trunk/blender/intern/guardedalloc/intern/mmap_win.c 2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -151,7 +151,7 @@
>  }
>
>  /* munmap for windows */
> -long munmap(void *ptr, long size)
> +intptr_t munmap(void *ptr, intptr_t size)
>  {
>        MemMap *mm = mmap_findlink(mmapbase, ptr);
>        if (!mm) {
>
> Modified: trunk/blender/intern/guardedalloc/mmap_win.h
> ===================================================================
> --- trunk/blender/intern/guardedalloc/mmap_win.h        2008-08-17 16:36:37
> UTC (rev 16146)
> +++ trunk/blender/intern/guardedalloc/mmap_win.h        2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -45,8 +45,10 @@
>
>  #define MAP_FAILED ((void *)-1)
>
> +#include "BLO_sys_types.h" // needed for intptr_t
> +
>  void *mmap(void *start, size_t len, int prot, int flags, int fd, off_t
> offset);
> -long munmap(void *ptr, long size);
> +intptr_t munmap(void *ptr, intptr_t size);
>
>  #endif
>
>
> Added: trunk/blender/intern/opennl/superlu/BLO_sys_types.h
> ===================================================================
> --- trunk/blender/intern/opennl/superlu/BLO_sys_types.h
>     (rev 0)
> +++ trunk/blender/intern/opennl/superlu/BLO_sys_types.h 2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -0,0 +1,112 @@
> +/**
> + * $Id$
> + *
> + * ***** BEGIN GPL LICENSE BLOCK *****
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software Foundation,
> + * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
> + *
> + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
> + * All rights reserved.
> + *
> + * The Original Code is: all of this file.
> + *
> + * Contributor(s): none yet.
> + *
> + * ***** END GPL LICENSE BLOCK *****
> + * A platform-independent definition of [u]intXX_t
> + * Plus the accompanying header include for htonl/ntohl
> + *
> + * This file includes <sys/types.h> to define [u]intXX_t types, where
> + * XX can be 8, 16, 32 or 64. Unfortunately, not all systems have this
> + * file.
> + * - Windows uses __intXX compiler-builtin types. These are signed,
> + *   so we have to flip the signs.
> + * For these rogue platforms, we make the typedefs ourselves.
> + *
> + */
> +
> +/*
> +// DG: original BLO_sys_types.h is in source/blender/blenkernel
> +// but is not allowed be accessed here because of bad-level-call
> +*/
> +
> +#ifndef BLO_SYS_TYPES_H
> +#define BLO_SYS_TYPES_H
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +#ifdef FREE_WINDOWS
> +typedef unsigned char uint8_t;
> +typedef unsigned int uint32_t;
> +#endif
> +
> +#if defined(_WIN32) && !defined(FREE_WINDOWS)
> +
> +/* The __intXX are built-in types of the visual complier! So we don't
> + * need to include anything else here. */
> +
> +typedef signed __int8  int8_t;
> +typedef signed __int16 int16_t;
> +typedef signed __int32 int32_t;
> +typedef signed __int64 int64_t;
> +
> +typedef unsigned __int8  uint8_t;
> +typedef unsigned __int16 uint16_t;
> +typedef unsigned __int32 uint32_t;
> +typedef unsigned __int64 uint64_t;
> +
> +#ifdef _WIN64
> +typedef __int64 intptr_t;
> +typedef unsigned __int64 uintptr_t;
> +#else
> +typedef long intptr_t;
> +typedef unsigned long uintptr_t;
> +#endif
> +
> +#elif defined(__linux__)
> +
> +       /* Linux-i386, Linux-Alpha, Linux-ppc */
> +#include <stdint.h>
> +
> +#elif defined (__APPLE__)
> +
> +#include <inttypes.h>
> +
> +#else
> +
> +       /* FreeBSD, Irix, Solaris */
> +#include <sys/types.h>
> +
> +#endif /* ifdef platform for types */
> +
> +#ifdef _WIN32
> +#define htonl(x) correctByteOrder(x)
> +#define ntohl(x) correctByteOrder(x)
> +#elif defined (__FreeBSD__) || defined (__OpenBSD__)
> +#include <sys/param.h>
> +#elif defined (__APPLE__)
> +#include <sys/types.h>
> +#else  /* irix sun linux */
> +#include <netinet/in.h>
> +#endif /* ifdef platform for htonl/ntohl */
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif /* eof */
> +
>
> Modified: trunk/blender/intern/opennl/superlu/smemory.c
> ===================================================================
> --- trunk/blender/intern/opennl/superlu/smemory.c       2008-08-17 16:36:37
> UTC (rev 16146)
> +++ trunk/blender/intern/opennl/superlu/smemory.c       2008-08-17 17:08:00
> UTC (rev 16147)
> @@ -8,6 +8,8 @@
>  */
>  #include "ssp_defs.h"
>
> +#include "BLO_sys_types.h" // needed for intptr_t
> +
>  /* Constants */
>  #define NO_MEMTYPE  4      /* 0: lusup;
>                              1: ucol;
> @@ -49,8 +51,8 @@
>
>  /* Macros to manipulate stack */
>  #define StackFull(x)         ( x + stack.used >= stack.size )
> -#define NotDoubleAlign(addr) ( (long int)addr & 7 )
> -#define DoubleAlign(addr)    ( ((long int)addr + 7) & ~7L )
> +#define NotDoubleAlign(addr) ( (intptr_t)addr & 7 )
> +#define DoubleAlign(addr)    ( ((intptr_t)addr + 7) & ~7L )
>  #define TempSpace(m, w)      ( (2*w + 4 + NO_MARKER) * m * sizeof(int) + \
>                              (w + 1) * m * sizeof(float) )
>  #define Reduce(alpha)        ((alpha + 1) / 2)  /* i.e. (alpha-1)/2 + 1 */
> @@ -611,8 +613,8 @@
>
>     last = (char*)usub + xusub[ndim] * iword;
>     fragment = (char*) (((char*)stack.array + stack.top1) - last);
> -    stack.used -= (long int) fragment;
> -    stack.top1 -= (long int) fragment;
> +    stack.used -= (intptr_t) fragment;
> +    stack.top1 -= (intptr_t) fragment;
>
>     Glu->ucol = ucol;
>
> @@ Diff output truncated at 10240 characters. @@
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-committers/attachments/20080818/94afe790/attachment-0001.htm 


More information about the Bf-committers mailing list