Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

Maybe you could reorder the conditional Zenith, when "svn info" is enough then user doesnt need "git"?

 

Found fallback example https://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion

if git rev-parse --git-dir > /dev/null 2>&1 && [[ $1 == "info" ]] ; then  git svn infoelse   /usr/local/bin/svn "$@"fi
Edited by cecekpawon
Link to comment
Share on other sites

Maybe you could reorder the conditional Zenith, when "svn info" is enough then user doesnt need "git"?

I don't see anything wrong with current version to fix (or previous version either...)  But I don't have Clover .svn repository present to check, and it takes long time to download.

 

With commit 3464 XCODE toolset will use CpuInterrupt.S instead of CpuInterrupt.nasm.

If it will not work revert please.

Only had one compilation error because of use of intel mnemonic movzx instead of AT&T mnemonic. Otherwise, it compiles and boot6 + boot7 both work. boot3 compiles, but I didn't try running it.

 

do we still need to do "make -C BaseTools/Source/C" manually when compling or already builtin and no need?

For the love of clover, please reply :(

 

This looks to be already builtin in ebuild.sh

    # Create edk tools if necessary
    if  [[ ! -x "$EDK_TOOLS_PATH/Source/C/bin/GenFv" ]]; then
        echo "Building tools as they are not found"
        make -C "$WORKSPACE"/BaseTools CC="gcc -Wno-deprecated-declarations"
    fi

Link to comment
Share on other sites

@zenith432 - exactly my scenario. 

 

something like this perhaps - reverse logic to check for .svn first ?

 

#    if [[ -n $GIT && -n $GITDIR ]]; then
    if [[ -d .svn ]]; then
        svnversion -n | tr -d [:alpha:] >vers.txt
    else
        $GIT svn info | grep Revision | tr -cd [:digit:] >vers.txt
    fi

Link to comment
Share on other sites

Hi

a quick Q in snippet of ./ebuild.sh usage

Usage: |clean|cleanpkg|cleanall|cleanlib|

cleanall includes all of the above?

what cleaning method is recommended for maintenance/cleanup only in clover side. ( doesn't include sdk2)?

Link to comment
Share on other sites

Hi

a quick Q in snippet of ./ebuild.sh usage

Usage: |clean|cleanpkg|cleanall|cleanlib|

cleanall includes all of the above?

what cleaning method is recommended for maintenance/cleanup only in clover side. ( doesn't include sdk2)?

Just clean is usually enough.

Link to comment
Share on other sites

@Slice

Have you had any joy compiling with -xcode5 flag to produce a bootable BOOTX64.efi yet? GCC 5.3 and clang work great but I still get a black screen on boot with xcode. The keyboard is still responsive as ctrl+alt+delete reboots. Pressing the enter key does nothing so it suggests it's not just that the GUI is failing to appear. I'm beginning to wonder if it's a motherboard specific UEFI implementation issue...

Link to comment
Share on other sites

@Slice

Have you had any joy compiling with -xcode5 flag to produce a bootable BOOTX64.efi yet? GCC 5.3 and clang work great but I still get a black screen on boot with xcode. The keyboard is still responsive as ctrl+alt+delete reboots. Pressing the enter key does nothing so it suggests it's not just that the GUI is failing to appear. I'm beginning to wonder if it's a motherboard specific UEFI implementation issue...

Clover r3467 is building fine here with ./ebuild.sh -t XCODE5 with Xcode 7.3.

BOOTX64-r3467-XCODE5.zip

  • Like 1
Link to comment
Share on other sites

@Slice

Have you had any joy compiling with -xcode5 flag to produce a bootable BOOTX64.efi yet? GCC 5.3 and clang work great but I still get a black screen on boot with xcode. The keyboard is still responsive as ctrl+alt+delete reboots. Pressing the enter key does nothing so it suggests it's not just that the GUI is failing to appear. I'm beginning to wonder if it's a motherboard specific UEFI implementation issue...

Yes, now it works. Clover 3467, EDK2 20600 + patches_from_Clover, Xcode 7.3.

Tested both boot6 and CLOVERX64.EFI with -xcode5 compilation.

Link to comment
Share on other sites

./ebuild.sh -clang also produces working binary but larger size (no-lto) so I can recommend -xcode5 as the best compilinig toolchain. But only in ElCapitan with XCode7.3. For older systems clang-3.8 can be used or gcc-4.9. I am still not tested gcc-5.3 but I see there are successful reports. Can be recommended as well.

  • Like 1
Link to comment
Share on other sites

Great work Zenith432!

I tested 3471 on my comp #4 in sig.

OSX 10.7.5, Xcode 4.4.1, clang 

Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix

Updated Edk2 to rev 20635 and Clover 3471. 

Applied  Patches_for_EDK2 completely

cp -R Patches_for_EDK2/* ../

then compiled as

./ebuild.sh -xcode5 -mc --no-usb

Tested in QEMU+SeaBIOS and on the computer. Both legacy boot.

All works fine!

 

The size of CloverX64.efi = 616kb  :w00t:

so we need no more gcc?

 

I have numerous warning during compilation like

ld: warning: could not create compact unwind for _GetSleepImageLocation: non-standard register 4 being saved in prolog
ld: warning: could not create compact unwind for _GetSleepImagePosition: non-standard register 4 being saved in prolog

doesn't matter, all works.

  • Like 1
Link to comment
Share on other sites

so we need no more gcc?

That was the idea :)

 

I have numerous warning during compilation like

I didn't try building with Xcode < 7.3, so didn't see these. it sounds like a warning when generating stack

unwind info for x86-64 exception handling. There is probably an ld option to turn this off, since we don't need unwind data. I think mtoc does not transfer it from macho to coff anyway. From what I see, mtoc only transfers .text, .data and relocations. Everything else is dropped.

  • Like 1
Link to comment
Share on other sites

Added more log Clover build infos, maybe useful for reporting bugs:

0:100  0:100  MemLog inited, TSC freq: 3410017843
0:100  0:000  
0:100  0:000  Now is 25.4.2016,  12:25:17 (GMT)
0:100  0:000  Starting Clover rev 3471 on American Megatrends EFI
0:100  0:000  Build with: [Args: ./ebuild.sh -xcode5 -mc --no-usb | Command: build -D DISABLE_USB_SUPPORT -D USE_BIOS_BLOCKIO -D USE_LOW_EBDA -D CLANG -p Clover/Clover.dsc -a X64 -b RELEASE -t XCODE5 -n 5 -xcode5 -mc --no-usb | OS: 10.11.5 | XCODE: 6.1.1]

Please vote

  • Like 1
Link to comment
Share on other sites

already tried that?

svn info --trust-server-cert --non-interactive svn://svn.code.sf.net/p/cloverefiboot/code | grep 'Revision:' | awk '{print $NF}'

better than random number, and if fail, revision should be 0000 to make understand that something goes wrong

Edited by Micky1979
  • Like 1
Link to comment
Share on other sites

if [[ -d .svn ]]; then
        svnversion -n | tr -d [:alpha:] >vers.txt
    elif [[ -d .git ]]; then
        git svn find-rev git-svn | tr -cd [:digit:] >vers.txt
    else
        echo -n $RANDOM >vers.txt
    fi

Yep on local but why the last resource is a random value if other commands fails? keep it from the online repo or write four zeros. If that is the problem, otherwise forgot me :)

 

EDIT

Sorry, my question is not related to your diff patch strictly

Edited by Micky1979
Link to comment
Share on other sites

Good

Clover slice$ svn info --trust-server-cert --non-interactive svn://svn.code.sf.net/p/cloverefiboot/code | grep 'Revision:'
Revision: 3473

Insert it instead of RANDOM?

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...