added mold
This commit is contained in:
		
							parent
							
								
									59883fed2c
								
							
						
					
					
						commit
						4819200984
					
				
					 2 changed files with 122 additions and 0 deletions
				
			
		
							
								
								
									
										27
									
								
								pkgs/mold/build.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								pkgs/mold/build.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| pkgname=mold | ||||
| pkgver=main | ||||
| deps="musl:libexecinfo" | ||||
| 
 | ||||
| fetch() { | ||||
| 	curl -L "https://github.com/rui314/mold/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.gz | ||||
| 	tar -xf $pkgname-$pkgver.tar.gz | ||||
| 	cd $pkgname-$pkgver | ||||
| 	patch -p1 < ../../musl.patch | ||||
| } | ||||
| 
 | ||||
| build() { | ||||
| 	cd $pkgname-$pkgver | ||||
| 	gmake | ||||
| } | ||||
| 
 | ||||
| package() { | ||||
| 	cd $pkgname-$pkgver | ||||
| 	gmake install DESTDIR=$pkgdir | ||||
| 	ln -sr $pkgdir/usr/bin/mold $pkgdir/usr/bin/ld.mold | ||||
| } | ||||
| 
 | ||||
| license() { | ||||
| 	cd $pkgname-$pkgver | ||||
| 	cat LICENSE | ||||
| #	cat COPYING | ||||
| } | ||||
							
								
								
									
										95
									
								
								pkgs/mold/musl.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								pkgs/mold/musl.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,95 @@ | |||
| diff --git a/Makefile b/Makefile
 | ||||
| index 1b36943..c6e0407 100644
 | ||||
| --- a/Makefile
 | ||||
| +++ b/Makefile
 | ||||
| @@ -8,7 +8,7 @@ CPPFLAGS = -g -Imimalloc/include -pthread -std=c++20 \
 | ||||
|             -DGIT_HASH=\"$(GIT_HASH)\" \ | ||||
|  	   $(EXTRA_CPPFLAGS) | ||||
|  LDFLAGS += $(EXTRA_LDFLAGS) -rdynamic | ||||
| -LIBS = -Wl,-as-needed -lcrypto -pthread -lz -lxxhash -ldl -lm
 | ||||
| +LIBS = -Wl,-as-needed -lcrypto -pthread -lz -lxxhash -lexecinfo -ldl -lm
 | ||||
|  OBJS = main.o object_file.o input_sections.o output_chunks.o \ | ||||
|         mapfile.o perf.o linker_script.o archive_file.o output_file.o \ | ||||
|         subprocess.o gc_sections.o icf.o symbols.o cmdline.o filepath.o \ | ||||
| diff --git a/mold.h b/mold.h
 | ||||
| index 550545c..8bab9b9 100644
 | ||||
| --- a/mold.h
 | ||||
| +++ b/mold.h
 | ||||
| @@ -27,6 +27,7 @@
 | ||||
|  #include <tbb/task_group.h> | ||||
|  #include <unistd.h> | ||||
|  #include <unordered_set> | ||||
| +#include <unordered_map>
 | ||||
|  #include <vector> | ||||
|  #include <xxh3.h> | ||||
|   | ||||
| @@ -41,6 +42,9 @@ typedef int32_t i32;
 | ||||
|  typedef int64_t i64; | ||||
|   | ||||
|  static constexpr i32 SECTOR_SIZE = 512; | ||||
| +#ifdef PAGE_SIZE
 | ||||
| +#undef PAGE_SIZE
 | ||||
| +#endif
 | ||||
|  static constexpr i32 PAGE_SIZE = 4096; | ||||
|  static constexpr i32 SHA256_SIZE = 32; | ||||
|   | ||||
| @@ -2198,7 +2202,7 @@ InputFile<E>::get_string(Context<E> &ctx, const ElfShdr<E> &shdr) {
 | ||||
|    u8 *end = begin + shdr.sh_size; | ||||
|    if (mb->data(ctx) + mb->size() < end) | ||||
|      Fatal(ctx) << *this << ": shdr corrupted"; | ||||
| -  return {(char *)begin, (char *)end};
 | ||||
| +  return {(char *)begin, (size_t)(end-begin)};
 | ||||
|  } | ||||
|   | ||||
|  template <typename E> | ||||
| diff --git a/oneTBB/include/oneapi/tbb/detail/_config.h b/oneTBB/include/oneapi/tbb/detail/_config.h
 | ||||
| index 27a3dd7..bb422b0 100644
 | ||||
| --- a/oneTBB/include/oneapi/tbb/detail/_config.h
 | ||||
| +++ b/oneTBB/include/oneapi/tbb/detail/_config.h
 | ||||
| @@ -257,7 +257,7 @@
 | ||||
|      #define __TBB_CPP20_COMPARISONS_PRESENT __TBB_CPP20_PRESENT | ||||
|  #endif | ||||
|   | ||||
| -#define __TBB_RESUMABLE_TASKS                           (!__TBB_WIN8UI_SUPPORT && !__ANDROID__)
 | ||||
| +#define __TBB_RESUMABLE_TASKS                           (!__TBB_WIN8UI_SUPPORT && __GLIBC__)
 | ||||
|   | ||||
|  /* This macro marks incomplete code or comments describing ideas which are considered for the future. | ||||
|   * See also for plain comment with TODO and FIXME marks for small improvement opportunities. | ||||
| diff --git a/oneTBB/src/tbbmalloc_proxy/proxy.cpp b/oneTBB/src/tbbmalloc_proxy/proxy.cpp
 | ||||
| index b286e51..8057708 100644
 | ||||
| --- a/oneTBB/src/tbbmalloc_proxy/proxy.cpp
 | ||||
| +++ b/oneTBB/src/tbbmalloc_proxy/proxy.cpp
 | ||||
| @@ -24,7 +24,8 @@
 | ||||
|  // of aligned_alloc as required by new C++ standard, this makes it hard to | ||||
|  // redefine aligned_alloc here. However, running on systems with new libc | ||||
|  // version, it still needs it to be redefined, thus tricking system headers | ||||
| -#if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
 | ||||
| +#if defined(__GLIBC_PREREQ)
 | ||||
| +#if !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
 | ||||
|  // tell <cstdlib> that there is no aligned_alloc | ||||
|  #undef _GLIBCXX_HAVE_ALIGNED_ALLOC | ||||
|  // trick <stdlib.h> to define another symbol instead | ||||
| @@ -33,6 +34,7 @@
 | ||||
|  #include <cstdlib> | ||||
|  #undef aligned_alloc | ||||
|  #endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC | ||||
| +#endif // defined(__GLIBC_PREREQ)
 | ||||
|  #endif // __linux__ && !__ANDROID__ | ||||
|   | ||||
|  #include "proxy.h" | ||||
| @@ -256,6 +258,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW
 | ||||
|      return 1; | ||||
|  } | ||||
|   | ||||
| +#ifdef __GLIBC__
 | ||||
|  struct mallinfo mallinfo() __THROW | ||||
|  { | ||||
|      struct mallinfo m; | ||||
| @@ -263,6 +266,7 @@ struct mallinfo mallinfo() __THROW
 | ||||
|   | ||||
|      return m; | ||||
|  } | ||||
| +#endif
 | ||||
|   | ||||
|  #if __ANDROID__ | ||||
|  // Android doesn't have malloc_usable_size, provide it to be compatible | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue