stlvnub / clovergrower Goto Github PK
View Code? Open in Web Editor NEWCompile Tool For Clover UEFI/bios OS X Booter
Compile Tool For Clover UEFI/bios OS X Booter
hello,
There appears to be a problem with GenFds and the path it uses, I'm using a checkout from an hour ago and am a new user that hasn't successfully built Clover yet. It originally said it can't find GenFds, so I symlinked the one from PosixLike into ~/bin/ because I didn't want to stomp on any environment variables this build command sets.
That didn't work either:
The GenFds at CloverGrower/src/edk2/BaseTools/BinWrappers/PosixLike/GenFds contains:
#!/usr/bin/env bash
#python `dirname $0`/RunToolFromSource.py `basename $0` $*
PYTHONPATH="`dirname $0`/../../Source/Python" \
python "`dirname $0`/../../Source/Python"/`basename $0`/`basename $0`.py $*
And I believe from the cwd
of the build script that this won't work (the path isn't correct AFAICT) but I'm not sure I'm following the chain of events correctly.
Error log follows.
Generating DUETEFIMAINFVX64 FV
########################################
GenFds.py...
/nethome/people/emory/Projects/CloverGrower/src/edk2/Clover/HFSPlus/HFSPlus.inf(22): error 000E: File/directory not found in workspace
/nethome/people/emory/Projects/CloverGrower/src/edk2/Clover/HFSPlus/X64/HFSPlus.efi
make: *** [fds] Error 14
###########################
build.py...
: error 7000: Failed to execute command
make fds [/nethome/people/emory/Projects/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC47]
- Failed -
Build end time: 19:26:58, Jan.13 2013
Build total time: 00:02:04
Building ... /Users/francois/Documents/CloverGrower/src/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf [IA32]
Building ... /Users/francois/Documents/CloverGrower/src/edk2/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf [IA32]
/bin/sh: /Users/francois/Documents/CloverGrower/toolchain/ia32/gcc: No such file or directory
make: *** [/Users/francois/Documents/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC48/IA32/MdePkg/Library/BasePcdLibNull/BasePcdLibNull/OUTPUT/PcdLib.obj] Error 127
build.py...
: error 7000: Failed to execute command
make tbuild [/Users/francois/Documents/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC48/IA32/MdePkg/Library/BasePcdLibNull/BasePcdLibNull]
build.py...
: error 7000: Failed to execute command
make tbuild [/Users/francois/Documents/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC48/IA32/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull]
build.py...
: error F002: Failed to build module
/Users/francois/Documents/CloverGrower/src/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf [IA32, GCC48, RELEASE]
CloverGrower V5.1f Cloveria32 RELEASE ERROR!!
Good Afternoon.
The strange part is why it wants to compile x32, I'm running x64. Anyway hope you can take a look at it. *I have already removed CloverGrower, and git clone again
Hi, edk2 sources are not downloaded on the initial run.
The affected lines are: 202 & 203, 268.
Hi,
I think you need to replace Clover_v2_r to Clover_v2k_r
new name in clover build...
Thx
running ./ebuild.sh -gcc48 -x64 -release
Initializing workspace
Loading previous configuration from $WORKSPACE/Conf/BuildEnv.sh
WORKSPACE: /CloverGrower/src/edk2
EDK_TOOLS_PATH: /CloverGrower/src/edk2/BaseTools
Building tools as they are not found
make -C Source/C
Attempting to detect ARCH from 'uname -m': x86_64
Detected ARCH of X64 using uname.
mkdir -p .
make -C Common
gcc -c -MD -fshort-wchar -fno-strict-aliasing -fno-merge-constants -nostdlib -Wall -Werror -c -g -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/ BasePeCoff.c -o BasePeCoff.o
clang: error: argument unused during compilation: '-fno-merge-constants'
make[2]: *** [BasePeCoff.o] Error 1
make[1]: *** [Common] Error 2
make: *** [Source/C] Error 2
CloverGrower V5.3g Cloverx64_r1890 RELEASE ERROR!!
Good Morning.
it does not work with Xcode 6.01
I noticed that you've implemented a check for who made the last commit, and set it to ignore anyone but the main development team. That's a good idea, but unfortunately, I think the current procedure does not work as intended since it only checks the very last commit. This means that the developers can commit multiple times, but if pootle commits after that: clovergrower will ignore the changes and skip building.
For example, I'm currently at revision 1828 locally. Commits 1832-1835 were by slice2009 and blusseau, but the most recent one (1840) was by pootle. Running CloverGrower sees that 1840 was by pootle and exits, leaving me without the other new revisions from the development team.
It seems to me that for this to be useful, it would need to check every newer revision until it finds a commit from the development team, and if it doesn't: it could be safely assumed that it should skip building.
I am new the Clover source code world and this is actually my first try. Could anyone help with this?
[XCODE]
================= Making all in fdisk440 =================
[MKDIR] /Users/heming_wang/src/edk2/Clover/CloverPackage/sym/build/fdisk440
[CC32] auto.c
[CC32] cmd.c
[CC32] disk.c
[CC32] fdisk.c
[CC32] getrawpartition.c
[CC32] mbr.c
[CC32] misc.c
[CC32] opendev.c
[CC32] part.c
[CC32] user.c
[CC64] auto.c
[CC64] cmd.c
[CC64] disk.c
[CC64] fdisk.c
[CC64] getrawpartition.c
[CC64] mbr.c
[CC64] misc.c
[CC64] opendev.c
[CC64] part.c
[CC64] user.c
[LD32] fdisk440_32
[LD64] fdisk440_64
[LIPO] /Users/heming_wang/src/edk2/Clover/CloverPackage/sym/utils/fdisk440
================= Making all in boot1-install =================
[XCODE] boot1-install
================= Making all in partutil =================
[XCODE] partutil
================= Making all in bdmesg =================
[XCODE] bdmesg
================= Making all in clover-genconfig =================
[XCODE] clover-genconfig
** INSTALL FAILED **
The following build commands failed:
CompileC /Users/heming_wang/src/edk2/Clover/CloverPackage/sym/build/clover-genconfig/clover-genconfig.build/Release/clover-genconfig.build/Objects-normal/i386/clover-genconfig.o clover-genconfig.c normal i386 c com.apple.compilers.llvm.clang.1_0.compiler
CompileC /Users/heming_wang/src/edk2/Clover/CloverPackage/sym/build/clover-genconfig/clover-genconfig.build/Release/clover-genconfig.build/Objects-normal/x86_64/clover-genconfig.o clover-genconfig.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler
(2 failures)
make[1]: *** [/Users/heming_wang/src/edk2/Clover/CloverPackage/sym/utils/clover-genconfig] Error 65
make: *** [all-recursive] Error 1
Package 3132 NOT BUILT!!!, probably svn error :(
REMOVE Clover folder from src/edk2 and re-run CloverGrower V6.26 :)
Case-sensitive filesystems (ZFS, any non-jhfs+ via NFS and even HFS+ if initialized as case-sensitive) will choke and fail due to not being able to find HFSPlus/X64/HFSPlus.efi
โ the "IA32" or "X64" subdirectory that contains that file should probably be called ia32
or x64
respectively.
Errors will begin starting with something like:
GenFds.py...
/Users/emory/Projects/CloverGrower/edk2/Clover/HFSPlus/HFSPlus.inf(22): error 000E: File/directory not found in workspace
/Users/emory/Projects/CloverGrower/edk2/Clover/HFSPlus/X64/HFSPlus.efi
make: *** [fds] Error 14
And there may be others later in the build process.
I dug around a bit and saw a place in the CloverGrower.command
it should be fixed but that won't fix it entirely. The tree it pulls from the svn repository will also need to be fixed and I don't know if it's appropriate to submit a routine that fixes it (if it sees that it's broken) in CloverGrower.command or if you'd rather they fix it upstream in Clover?
Checkout the git repository for CloverGrower onto a case-insensitive filesystem and it should work smoothly.
Alternatively, users may "fix" the discrepancy by symlinking x64
to X64
, ia32
to IA32
and, ahem, Ia32
and CloverGrower will build packages as expected.
In my above example, /Users/emory/Projects
is a ZFS filesystem that is mounted via NFS from a central fileserver that I keep my projects on.
OS X 10.8.2 on MacBook 5,1.
I'm a total noob, so maybe I'm completely wrong on this one, but when trying to execute the CloverGrower.command, after figuring out what that thing about the universal edk2 folder was supposed to mean and what I was to do to continue with the process, I got an error about an unbound variable in buildgcc.sh at line 505. I think that the issue is that the variable name is spelled with some uppercase letters where lowercase should be used: $archBIT should be $archBit. At least that's the way it is spelled in CloverGrower.command at line 18 after the export command. Changing that in buildgcc.sh at least made it work for me, I hope that the output Clover package works properly!
I hope this helps, folks. And THANK you for your work, it looks very promising, when I finally get to making Clover work for me I'll know for sure!
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_copy':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:187: warning: implicit declaration of function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:187: warning: incompatible implicit declaration of built-in function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:193: warning: implicit declaration of function 'strcpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:193: warning: incompatible implicit declaration of built-in function 'strcpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_copy_cstr':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:206: warning: implicit declaration of function 'strlen'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:206: warning: incompatible implicit declaration of built-in function 'strlen'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:211: warning: incompatible implicit declaration of built-in function 'strcpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_insert':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:249: warning: incompatible implicit declaration of built-in function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:257: warning: implicit declaration of function 'strncpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:257: warning: incompatible implicit declaration of built-in function 'strncpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_insert_cstr':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:272: warning: incompatible implicit declaration of built-in function 'strlen'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:280: warning: incompatible implicit declaration of built-in function 'strncpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_append':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:316: warning: incompatible implicit declaration of built-in function 'strcpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_append_cstr':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:328: warning: incompatible implicit declaration of built-in function 'strlen'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:334: warning: incompatible implicit declaration of built-in function 'strcpy'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_substring':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:371: warning: incompatible implicit declaration of built-in function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c: In function 'dyn_string_eq':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/dyn-string.c:396: warning: implicit declaration of function 'strcmp'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c: In function 'fibheap_union':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:151: warning: implicit declaration of function 'free'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c: In function 'fibheap_replace_key_data':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:220: error: 'LONG_MIN' undeclared (first use in this function)
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:220: error: (Each undeclared identifier is reported only once
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:220: error: for each function it appears in.)
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c: In function 'fibheap_delete_node':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:261: error: 'LONG_MIN' undeclared (first use in this function)
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:265: warning: implicit declaration of function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:265: warning: incompatible implicit declaration of built-in function 'abort'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c: In function 'fibheap_consolidate':
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:368: warning: implicit declaration of function 'memset'
/Users/jurij/Downloads/CloverGrower-master/toolchain/CloverTools/src/tools/gcc/binutils-2.23.2/libiberty/fibheap.c:368: warning: incompatible implicit declaration of built-in function 'memset'
make[2]: *** [fibheap.o] Error 1
make[1]: *** [all-libiberty] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
make: Nothing to be done for `tbuild'.
make: *** [/Users/fatazlity/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC48/X64/Clover/OsxBdsDxe/BdsDxe/DEBUG/BdsDxe.dll] Error 1
build.py...
: error 7000: Failed to execute command
make tbuild [/Users/fatazlity/CloverGrower/src/edk2/Build/Clover/RELEASE_GCC48/X64/Clover/OsxBdsDxe/BdsDxe]
build.py...
: error F002: Failed to build module
/Users/fatazlity/CloverGrower/src/edk2/Clover/OsxBdsDxe/BdsDxe.inf [X64, GCC48, RELEASE]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.