From murdoch.duncan at gmail.com  Thu Dec 30 23:19:54 2010
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Thu, 30 Dec 2010 17:19:54 -0500
Subject: [Rd] problem building R 2.12.1 64-bit on Windows 7
In-Reply-To: <AANLkTim2N85SDbd2aPdJ5Xhk_1U=pz=DrveLZZYVAi-Z@mail.gmail.com>
References: <AANLkTim2N85SDbd2aPdJ5Xhk_1U=pz=DrveLZZYVAi-Z@mail.gmail.com>
Message-ID: <4D1D058A.8000600@gmail.com>

On 10-12-30 4:13 PM, Michael Sumner wrote:
> Hello,
>
> I am stuck trying to build 64-bit R 2.12.1 on Windows 7, hopefully the
> problem is obvious and someone can point out what I'm missing.
>
> Well into the "make all recommended" process, I get an error:
>
> make[4]: *** [Rzlib.dll] Error 4
>
> (A longer report on the error in the build print is below - there
> is also help output from sed that I have included but don't know if it
> is relevant. )
>
> If I follow the same set up but choose a 32-bit build it runs
> successfully to completion and I can run R.
>
> I have tried this on two different machines running 64-bit Windows
> with the released R 2.12.1. The error is the same when using
> R-patched_2010-12-27_r53886.
>
> I'm sorry if this is something obvious, but I believe I've followed
> the instructions carefully and do not know what I might be doing
> wrong.
>
> As far as I can tell I should not need to modify BINPREF64 or SYMPAT64
> if use Rtools 2.12. Is that correct?
>
> A description of the set up and build process follows.
>
> Best regards, Mike.
>
>
> ----------------------------------
> Context
> ----------------------------------
>
> Using Rtools212.exe, with MiKTeX, no static HTML help, and no
> installer build.
>
> Everything installed is Run As Administrator, including the command
> prompt used to build R.
>
> -----------------------------------
> Environment Variables
> -----------------------------------
>
> These environment variables are set:
>
> PATH
>
> Rtools and MiKTeX installed, with the following at the start of PATH:
>
> c:\inst\R\Rtools\bin;c:\inst\R\Rtools\perl\bin;c:\inst\R\Rtools\MinGW\bin;c:\inst\R\Rtools\MinGW64\bin;C:\inst\MiKTeX\miktex\bin;
>
> TAR_OPTIONS
>
> Options to avoid messages when extracting sources:
>
> --no-same-owner --no-same-permissions
>
> TMPDIR
>
> I can write to this directory:
>
> G:\systemTEMP
>
> --------------------------------
> Build steps
> --------------------------------
>
> 1) Extract from the archive
>
> tar -xf R-patched_2010-12-27_r53886.tar.gz
>
> 2) Copy Rsrc "src/" and "Tcl/" into R-patched/ from the relevant 64
> bit Rtools source
>
> 3) Create the following file [R_HOME]/src/gnuwin32/MkRules.local
>
> # 32- or 64-bit Windows?
> WIN = 64
>
> JPEGDIR = jpeg-8a
>
> 4) Make
>
> cd R-patched/src/gnuwin32
> make all recommended
>
>
> ---------------------------------
> Error message in context
> ---------------------------------
> . . .
> making uncompr.d from uncompr.c
> making zutil.d from zutil.c
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c adler32.c -o adler32.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c compress.c -o compress.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c crc32.c -o crc32.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c deflate.c -o deflate.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c gzio.c -o gzio.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c infback.c -o infback.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c inffast.c -o inffast.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c inflate.c -o inflate.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c inftrees.c -o inftrees.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c trees.c -o trees.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c uncompr.c -o uncompr.o
> gcc -std=gnu99   -I../../include -DHAVE_CONFIG_H -O3 -Wall -pedantic
> -DR_ARCH='"x64"' -DW64 -c zutil.c -o zutil.o
> Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
>
>    -n, --quiet, --silent
>                   suppress automatic printing of pattern space
>    -e script, --expression=script
>                   add the script to the commands to be executed
>    -f script-file, --file=script-file
>                   add the contents of script-file to the commands to be executed
>    --follow-symlinks
>                   follow symlinks when processing in place
>    -i[SUFFIX], --in-place[=SUFFIX]
>                   edit files in place (makes backup if extension supplied)
>    -b, --binary
>                   open files in binary mode (CR+LFs are not processed specially)
>    -l N, --line-length=N
>                   specify the desired line-wrap length for the `l' command
>    --posix
>                   disable all GNU extensions.
>    -r, --regexp-extended
>                   use extended regular expressions in the script.
>    -s, --separate
>                   consider files as separate rather than as a single continuous
>                   long stream.
>    -u, --unbuffered
>                   load minimal amounts of data from the input files and flush
>                   the output buffers more often
>        --help     display this help and exit
>        --version  output version information and exit
>
> If no -e, --expression, -f, or --file option is given, then the first
> non-option argument is taken as the sed script to interpret.  All
> remaining arguments are names of input files; if no input files are
> specified, then the standard input is read.
>
> GNU sed home page:<http://www.gnu.org/software/sed/>.
> General help using GNU software:<http://www.gnu.org/gethelp/>.
> make[4]: *** [Rzlib.dll] Error 4
> make[3]: *** [rlibs] Error 1
> make[2]: *** [../../bin/x64/R.dll] Error 2
> make[1]: *** [rbuild] Error 2
> make: *** [all] Error 2

I don't know what's going wrong.  At that point it is supposed to be 
making Rzlib.dll (as the error at the end shows it was).  That is made 
using src/extra/zlib/Makefile.win. I don't see any calls to "sed" in 
there, but there's one in the implicit rule to make the .dll (in 
src/gnuwin32/MkRules), namely

$(SED) -n $(SYMPAT)

Do you have a definition for SYMPAT that overrides ours, or SYMPAT64 
(which is used in ours)?

If that's not it, you could remove the @ sign from the beginning of that 
line in MkRules, and see what it is trying to do just before it dies.

Duncan Murdoch



[Rd] problem building R 2.12.1 64-bit on Windows 7
Duncan Murdoch