Jump to content
30960 posts in this topic

Recommended Posts

 

2 hours ago, Slice said:

Nothing wrong in my case.

Ah ok. I though, when you said this following :

16 hours ago, Slice said:

Very simple question. 2132 is for your version, 2133 is for my version.

And the manufacture depends on Trust.

that something is not right.

 

 

2 hours ago, Slice said:

See here https://github.com/Meinersbur/isl/releases

May be change the script to this address?

 


@Slice the modification of builgcc10.sh will be commited ASAP. Right.

Thanks

  • Like 1
3 hours ago, MifJpnAlphaPlus said:

Hmmm.
configure doesn't exist.
It is using autoreconf.
I can't solve it.🥲

I make the script to create gcc11.2.0 and successfully.

But I don't know how to download good ISL version.

Old site is down. Meinersbur provide sources without configure.

I downloaded from Ubuntu but I can make download from script. I placed isl-0.24 into Clover release 5140 but again I can't download it from script.

So the method is follow:

1. ./build_gcc11.sh

it failed because of no isl.

2. Download isl-0.24.tar.xz manually from Clover release 5140

3. place it into ~/src/tools/download/

4. ./build_gcc11.sh

Yes! It now will work.

 

But then I encounter next problem

[GENFW] CLOVERX64
Section 1 .text mCoffOffset=576(0x240) mCoffOffsetNew=576(0x240) diff=0(0x0), size=1306432
Section 7 .eh_frame mCoffOffset=1307008(0x13f180) mCoffOffsetNew=1545792(0x179640) diff=238784(0x3a4c0), size=0
Section 3 .data mCoffOffset=1545792(0x179640) mCoffOffsetNew=1307008(0x13f180) diff=-238784(0xfffc5b40), size=238704
Section 5 .ctors mCoffOffset=1545712(0x1795f0) mCoffOffsetNew=1545728(0x179600) diff=16(0x10), size=8
GenFw: ERROR 3000: Invalid
  /Users/sergey/src/CloverBootloader/Build/Clover/RELEASE_GCC53/X64/rEFIt_UEFI/refit/DEBUG/CLOVERX64.dll: Bad definition for symbol '__cxa_pure_virtual'@0 or unsupported symbol type.  For example, absolute and undefined symbols are not supported.
make: *** [/Users/sergey/src/CloverBootloader/Build/Clover/RELEASE_GCC53/X64/rEFIt_UEFI/refit/OUTPUT/CLOVERX64.efi] Error 1

@Jief_Machak May be you know what is it.

  • Like 3
10 hours ago, Slice said:

I make the script to create gcc11.2.0 and successfully.

But I don't know how to download good ISL version.

Old site is down. Meinersbur provide sources without configure.

I downloaded from Ubuntu but I can make download from script. I placed isl-0.24 into Clover release 5140 but again I can't download it from script.

So the method is follow:

1. ./build_gcc11.sh

it failed because of no isl.

2. Download isl-0.24.tar.xz manually from Clover release 5140

3. place it into ~/src/tools/download/

4. ./build_gcc11.sh

Yes! It now will work.

 

Thanks @Slice How to use build_gcc11.sh with buildMe script !

What about .tar.xz extension : it will be replace by .tar.gz for ISL (Meinersbur) ?

 

6 hours ago, MifJpnAlphaPlus said:

Hello.

In download.tmp I saw a spell.🤣
The "--location" option solved it for me.

Git-Hub seems to be redirected.

curl -o download.tmp --remote-name --location https://github.com/CloverHackyColor/CloverBootloader/releases/download/5140/${ISL_VERSION}.tar.xz || exit 1

Thank you.

 

Thanks @MifJpnAlphaPlus This curl command is for build_gcc11.sh ! Right !

 

  • Like 1
  • Thanks 1

Hi @Slice @mifjpn(mifjpn)

I edit Buildme to use build_gcc11.sh (with @MifJpnAlphaPlus curl command). I can't make CloverPKG but there are some errors.

 

EDIT: I try makepkg manually: UEFI drivers choice is missing

 

Spoiler

240383281_Capturedcran2021-10-0609_08_18.png.ba395f7378482885969410f8d85423f2.png

 

Résultat de Terminal

Edited by Matgen84
  • Sad 1

I have an idea that we should place ISL not to release but into separate folder in code to be accessible by "git pull". 

This way we are sure that ISL already downloaded when we want to use it.

 

But I want to resolve a problem with cxa_pure_virtual

It presents in two places, in Clover codes and in OC codes.

12 hours ago, Jief_Machak said:

This the error handler when a pure virtual function (a function with no implementation) is called.

i don’t why it’s now generated, but it’s possible to define it ourself.

Where to define it?

  • Like 3
Guest 5T33Z0

Can you add sub-folders for macOS 11 and 12 to the "kexts" folder to support conditional kext loading?

 

I created a Folder "12.00" with kexts that should only be loader when macOS Monterey is running (BlueToolFixup, BrcmPatchRAM3, RestrictEvents), but these are not loaded. Did I do something wrong or must these be hard-coded into Clover?

 

Thanks

 

https://stackoverflow.com/questions/920500/what-is-the-purpose-of-cxa-pure-virtual

This error signal about logical error in the program.

Can we define the function as?

extern "C" void __cxa_pure_virtual() { DBG("pure_virtual called\n"); }

 

7 minutes ago, 5T33Z0 said:

Can you add sub-folders for macOS 11 and 12 to the "kexts" folder to support conditional kext loading?

 

I created a Folder "12.00" with kexts that should only be loader when macOS Monterey is running (BlueToolFixup, BrcmPatchRAM3, RestrictEvents), but these are not loaded. Did I do something wrong or must these be hard-coded into Clover?

 

Thanks

 

The folder should be "12"

  • Thanks 1
8 hours ago, Slice said:

I have an idea that we should place ISL not to release but into separate folder in code to be accessible by "git pull". 

This way we are sure that ISL already downloaded when we want to use it.

To use isl-0.24 from Meinersbur, 

should add autoconf and automake to toolchain/bin during the build process as they will be needed by autogen.sh to generate configure

 

Otherwise the link you provided from clover repo should suffice to get it done

it worked fine here.

everything but Clover builds fine.

 

8 hours ago, Slice said:

But I want to resolve a problem with cxa_pure_virtual

It presents in two places, in Clover codes and in OC codes.

Where to define it?

 

Maybe into

rEFIt_UEFI/PlatformEFI/cpp_util/pure_virtual.cpp

 

Edited by LAbyOne
  • Like 2
7 hours ago, Slice said:

Can we define the function as?

extern "C" void __cxa_pure_virtual() { DBG("pure_virtual called\n"); }

Yes, you can define it everywhere. Indeed it's already defined in rEFIt_UEFI/PlatformEFI/cpp_util/pure_virtual.cpp. 

 

either :

- the definition has changed

- pure_virtual.cpp has not been compiled (which is unlikely if you use the usual way of compiling)

- another trick from the compiler ?

 

This is definitely a change from gcc.

8 hours ago, Slice said:

It presents in two places, in Clover codes and in OC code

It cannot be in OC code as they are using only C. A pure virtual function exists because of C++ inheritance.

pure_virtual.cpp

  • Like 2

May be the problem is in GenFw itself?

See

@@ -894,12 +894,7 @@ WriteSections64 (
             SymName = (const UINT8 *)"<unknown>";
           }
 
-          Error (NULL, 0, 3000, "Invalid",
-                 "%s: Bad definition for symbol '%s'@%#llx or unsupported symbol type.  "
-                 "For example, absolute and undefined symbols are not supported.",
-                 mInImageName, SymName, Sym->st_value);
-
-          exit(EXIT_FAILURE);
+          continue;
         }
         SymShdr = GetShdrByIndex(Sym->st_shndx);
 
-- 

This is a part of patch by Gao Liming

https://patchew.org/EDK2/20190426144242.19024-1-liming.gao@intel.com/20190426144242.19024-3-liming.gao@intel.com/

7 hours ago, MifJpnAlphaPlus said:

 

Hello.

@LAbyOneMy apologies for the other day

 

@Slice

@Jief_Machak

@LAbyOne
I hear your exchange of stories.
This is very informative.
I see that autogen.sh can be used to cofigre with autoconf, etc. My prediction was correct. I'm convinced.

I learned about the actual implementation to the representation of abstract things (things that don't create instances). (I've only studied it.)
It's great.
Thank you.

just begin from initial. With latest commit all works.

  • Thanks 1
3 hours ago, Slice said:

just begin from initial. With latest commit all works.

 

Thanks.
Please, can you update BuildMe to use build_gcc11.sh instead of build_gcc10.sh on Github repo.

@Slice I use @MifJpnAlphaPlus method with option 4 (make pkg) instead of option 8 (make all)

There are some issues:

 

Buildme can't build ccpv to add it to package

 

Please enter your choice: 4
[XCODE]
- Building ccpv...
** BUILD FAILED **


The following build commands failed:
	CompileC /Users/mathieu/src/CloverBootloader/Xcode/CloverConfigPlistValidator/build/CloverConfigPlistValidator.build/Release/CloverConfigPlistValidator.build/Objects-normal/x86_64/CloverVersion.o /Users/mathieu/src/CloverBootloader/rEFIt_UEFI/Platform/CloverVersion.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
mv: rename /Users/mathieu/src/CloverBootloader/Xcode/CloverConfigPlistValidator/build/CloverConfigPlistValidator to /Users/mathieu/src/CloverBootloader/CloverPackage/CloverConfigPlistValidator/ccpv: No such file or directory
[BUILD PKG]
[CHECK XCODE]

The Clover package do not contains UEFI drivers choice

 

Spoiler

1958258439_Capturedcran2021-10-0711_29_34.png.2397ac0b4f3eb594f529c7d56d067eb4.png

 

Edited by Matgen84
3 minutes ago, Slice said:

May be choice 4 is not possible before choice 8?

 

I always use choice 4, without any problem before. I note nasm is installed with choice 8 only, very strange.

What about update buildme to use build_gcc11.sh instead of build_gcc10.sh on Github repo.

  • Sad 1
1 hour ago, Matgen84 said:

 

I always use choice 4, without any problem before. I note nasm is installed with choice 8 only, very strange.

What about update buildme to use build_gcc11.sh instead of build_gcc10.sh on Github repo.

I can do this at evening.

  • Like 1

@Matgen84

anytime you re-download and build Clover, the essential step to get it done is... "building Clover" :)

and you get it done either by choice 1 or 8

if you choose to build the pkg without having the compiled files, it obviously fails..

Nasm build is only invoked when building Clover (by ebuild.sh), the makepkg has no use for nasm, hence it will not call the install process.

so anytime you re-clone Clover, either (if no substantial changes to the toolchain are done) keep your toolchain folder somewhere in order to put it back into place later, or run 8 as first choice, as it will recall all needed tools and install if missing.

( if I did misunderstood your point, please pay no attention to this)

  • Like 1
  • Thanks 2
32 minutes ago, LAbyOne said:

@Matgen84

anytime you re-download and build Clover, the essential step to get it done is... "building Clover" :)

and you get it done either by choice 1 or 8

if you choose to build the pkg without having the compiled files, it obviously fails..

Nasm build is only invoked when building Clover (by ebuild.sh), the makepkg has no use for nasm, hence it will not call the install process.

so anytime you re-clone Clover, either (if no substantial changes to the toolchain are done) keep your toolchain folder somewhere in order to put it back into place later, or run 8 as first choice, as it will recall all needed tools and install if missing.

( if I did misunderstood your point, please pay no attention to this)

 Thanks @LAbyOne I understood now what I've forgotten.

I thought that build_gcc11.sh do the job (building Clover), that's why I chose option 4 (make pkg). In my previous post, I said that I use Terminal to launch build_gcc11.sh before using Buildme.

Now that I understand my little mistake, i can use options 1 then 4. 

 

Usually I use xcode and not gcc to compile clover 🙂

  • Like 2
×
×
  • Create New...