summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@oz.(none)>2010-05-08 17:44:56 +0200
committerroot <root@oz.(none)>2010-05-08 17:44:56 +0200
commit233b397411812d7c0105fad58522f5ae396c805d (patch)
treef3ea53a8773d58fc65d1b9f3e0c8719227e20217
parent5a6b8ae041af330d12683f0169d977304237e02b (diff)
downloadminilinux-233b397411812d7c0105fad58522f5ae396c805d.tar.gz
minilinux-233b397411812d7c0105fad58522f5ae396c805d.tar.bz2
upgraded kernel to 2.6.33.3
fixed compilation of miniperl with perl 5.12.0
-rw-r--r--Makefile23
-rw-r--r--Makefile.micro182
-rw-r--r--devices.map1
-rw-r--r--kernel-config144
-rw-r--r--miniperlmain.c174
5 files changed, 441 insertions, 83 deletions
diff --git a/Makefile b/Makefile
index 1248f08..585d29c 100644
--- a/Makefile
+++ b/Makefile
@@ -14,12 +14,14 @@ help:
# software versions
GRUB_VERSION=0.97
-KERNEL_VERSION=2.6.33.2
+KERNEL_VERSION=2.6.33.3
UCLIBC_VERSION=0.9.31
BUSYBOX_VERSION=1.16.1
ACPID_VERSION=1.0.10
GPM_VERSION=1.20.6
-PERL_VERSION=5.10.1
+PERL_VERSION=5.12.0
+
+PARALLEL=-j12
all: qemu vdi vmdk zip-vdi zip-vmdk
@@ -109,7 +111,7 @@ disk-image:
grub:
tar zxf tarballs/grub-$(GRUB_VERSION).tar.gz
mkdir grub-build && cd grub-build && ../grub-$(GRUB_VERSION)/configure --prefix=`pwd`
- cd grub-build && make
+ cd grub-build && make $(PARALLEL)
cd grub-build && make install
cp grub-build/lib/grub/i386-pc/stage1 target/boot/grub
cp grub-build/lib/grub/i386-pc/stage2 target/boot/grub
@@ -141,8 +143,8 @@ kernel:
-rm -rf linux-$(KERNEL_VERSION)
tar jxf tarballs/linux-$(KERNEL_VERSION).tar.bz2
cp kernel-config linux-$(KERNEL_VERSION)/.config
- cd linux-$(KERNEL_VERSION) && make bzImage
- cp linux-$(KERNEL_VERSION)/arch/i386/boot/bzImage target/boot/bzImage-$(KERNEL_VERSION)
+ cd linux-$(KERNEL_VERSION) && make $(PARALLEL) bzImage
+ cp linux-$(KERNEL_VERSION)/arch/x86/boot/bzImage target/boot/bzImage-$(KERNEL_VERSION)
kernel-clean:
-rm -rf linux-$(KERNEL_VERSION)
@@ -153,7 +155,7 @@ uclibc:
-rm -rf uClibc-$(UCLIBC_VERSION)
tar jxf tarballs/uClibc-$(UCLIBC_VERSION).tar.bz2
cp uclibc-config uClibc-$(UCLIBC_VERSION)/.config
- cd uClibc-$(UCLIBC_VERSION) && make CROSS=i486-pc-linux-gnu-
+ cd uClibc-$(UCLIBC_VERSION) && make $(PARALLEL) CROSS=i486-pc-linux-gnu-
cd uClibc-$(UCLIBC_VERSION) && make install DESTDIR=/tools
uclibc-clean:
@@ -165,7 +167,7 @@ busybox:
-rm -rf busybox-$(BUSYBOX_VERSION)
tar jxf tarballs/busybox-$(BUSYBOX_VERSION).tar.bz2
cp busybox-config busybox-$(BUSYBOX_VERSION)/.config
- cd busybox-$(BUSYBOX_VERSION) && make
+ cd busybox-$(BUSYBOX_VERSION) && make $(PARALLEL)
cd busybox-$(BUSYBOX_VERSION) && make install
cp /lib/libcrypt.so.1 target/lib
cp /lib/ld-linux.so.2 target/lib
@@ -184,7 +186,7 @@ gpm:
-rm -rf gpm-$(GPM_VERSION)
tar jxf tarballs/gpm-$(GPM_VERSION).tar.bz2
cd gpm-$(GPM_VERSION) && ./configure --prefix=/usr --without-curses
- cd gpm-$(GPM_VERSION) && make LDFLAGS="-lm"
+ cd gpm-$(GPM_VERSION) && make LDFLAGS="-lm" $(PARALLEL)
cd gpm-$(GPM_VERSION) && cp src/gpm ../target/usr/sbin
gpm-clean:
@@ -194,7 +196,7 @@ acpid:
-rm -rf acpid-$(ACPID_VERSION)
-rm -rf target/etc/acpi
tar zxf tarballs/acpid-$(ACPID_VERSION).tar.gz
- cd acpid-$(ACPID_VERSION) && make
+ cd acpid-$(ACPID_VERSION) && make $(PARALLEL)
cd acpid-$(ACPID_VERSION) && cp acpid ../target/usr/sbin/acpid
mkdir target/etc/acpi
mkdir target/etc/acpi/events
@@ -208,7 +210,8 @@ acpid-clean:
perl:
-rm -rf perl-$(PERL_VERSION)
tar zxf tarballs/perl-$(PERL_VERSION).tar.gz
- cd perl-$(PERL_VERSION) && make -f Makefile.micro
+ cp {Makefile.micro,miniperlmain.c} perl-$(PERL_VERSION)
+ cd perl-$(PERL_VERSION) && make -f Makefile.micro $(PARALLEL)
cd perl-$(PERL_VERSION) && cp microperl ../target/usr/bin/perl
perl-clean:
diff --git a/Makefile.micro b/Makefile.micro
new file mode 100644
index 0000000..6ae4f3c
--- /dev/null
+++ b/Makefile.micro
@@ -0,0 +1,182 @@
+LD = $(CC)
+CCFLAGS = -c
+DEFINES = -DPERL_CORE -DPERL_MICRO -DSTANDARD_C -DPERL_USE_SAFE_PUTENV
+OPTIMIZE =
+CFLAGS = $(DEFINES) $(OPTIMIZE)
+LDFLAGS =
+LIBS = -lm
+_O = .o
+ENV = env
+PERL = perl
+_X =
+RUN =
+
+all: microperl
+
+O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
+ uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
+ umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
+ upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
+ upp_ctl$(_O) upp_hot$(_O) upp_sys$(_O) upp_pack$(_O) upp_sort$(_O) \
+ uregcomp$(_O) uregexec$(_O) urun$(_O) \
+ uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
+ unumeric$(_O) ulocale$(_O) umathoms$(_O) \
+ uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O)
+
+microperl: $(O)
+ $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
+
+H = av.h uconfig.h cop.h cv.h embed.h embedvar.h form.h gv.h handy.h \
+ hv.h intrpvar.h iperlsys.h mg.h op.h opcode.h opnames.h pad.h \
+ patchlevel.h perl.h perlsdio.h perlvars.h perly.h pp.h \
+ pp_proto.h proto.h reentr.h regexp.h scope.h sv.h \
+ thread.h unixish.h utf8.h util.h uudmap.h warnings.h
+
+HE = $(H) EXTERN.h
+
+clean:
+ -rm -f $(O) microperl generate_uudmap$(_X) uudmap.h
+
+distclean: clean
+
+# The microconfiguration.
+
+# Cannot use $$ in the command line itself, so using var expansion instead.
+Config = '$$Config{$$1}'
+patch_uconfig:
+ $(PERL) -MConfig -pi -e "s/^((?:short|int|long(?:dbl|long)?|ptr|double|[iun]v|u?quad|[iu]\d+|fpos|lseek)(?:size|type)|byteorder|d_quad|quadkind|use64.+)=.*/\\1='"$(Config)"'/g" uconfig.shx
+
+regen_uconfig uconfig.h: uconfig.sh
+ $(ENV) CONFIG_SH=uconfig.sh CONFIG_H=uconfig.h sh ./config_h.SH
+
+# Do not regenerate perly.c and perly.h.
+
+perly.c: perly.y
+ -@echo perly.c is uptodate
+
+perly.h: perly.y
+ -@echo perly.h is uptodate
+
+# The microperl objects.
+
+uav$(_O): $(HE) av.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) av.c
+
+udeb$(_O): $(HE) deb.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) deb.c
+
+udoio$(_O): $(HE) doio.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doio.c
+
+udoop$(_O): $(HE) doop.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c
+
+udump$(_O): $(HE) dump.c regcomp.h regnodes.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
+
+uglobals$(_O): $(H) globals.c INTERN.h perlapi.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) globals.c
+
+ugv$(_O): $(HE) gv.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) gv.c
+
+umro$(_O): $(HE) mro.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mro.c
+
+uhv$(_O): $(HE) hv.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) hv.c
+
+umg$(_O): $(HE) mg.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mg.c
+
+uperlmain$(_O): $(HE) miniperlmain.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) miniperlmain.c
+
+uop$(_O): $(HE) op.c keywords.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) -DPERL_EXTERNAL_GLOB op.c
+
+ureentr$(_O): $(HE) reentr.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) reentr.c
+
+upad$(_O): $(HE) pad.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pad.c
+
+uperl$(_O): $(HE) perl.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perl.c
+
+uperlio$(_O): $(HE) perlio.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlio.c
+
+uperly$(_O): $(HE) perly.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perly.c
+
+upp$(_O): $(HE) pp.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp.c
+
+upp_ctl$(_O): $(HE) pp_ctl.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_ctl.c
+
+upp_hot$(_O): $(HE) pp_hot.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_hot.c
+
+upp_sys$(_O): $(HE) pp_sys.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sys.c
+
+upp_pack$(_O): $(HE) pp_pack.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_pack.c
+
+upp_sort$(_O): $(HE) pp_sort.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) pp_sort.c
+
+uregcomp$(_O): $(HE) regcomp.c regcomp.h regnodes.h INTERN.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regcomp.c
+
+uregexec$(_O): $(HE) regexec.c regcomp.h regnodes.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) regexec.c
+
+urun$(_O): $(HE) run.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) run.c
+
+uscope$(_O): $(HE) scope.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) scope.c
+
+usv$(_O): $(HE) sv.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) sv.c
+
+utaint$(_O): $(HE) taint.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) taint.c
+
+utoke$(_O): $(HE) toke.c keywords.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) toke.c
+
+ulocale$(_O): $(HE) locale.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) locale.c
+
+unumeric$(_O): $(HE) numeric.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) numeric.c
+
+umathoms$(_O): $(HE) mathoms.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) mathoms.c
+
+uuniversal$(_O): $(HE) universal.c XSUB.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) universal.c
+
+uutf8$(_O): $(HE) utf8.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) utf8.c
+
+uutil$(_O): $(HE) util.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) util.c
+
+uperlapi$(_O): $(HE) perlapi.c perlapi.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c
+
+uudmap.h: generate_uudmap$(_X)
+ $(RUN) ./generate_uudmap$(_X) uudmap.h bitcount.h
+
+generate_uudmap$(_O): generate_uudmap.c
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) generate_uudmap.c
+
+generate_uudmap$(_X): generate_uudmap$(_O)
+ $(LD) -o generate_uudmap $(LDFLAGS) generate_uudmap$(_O) $(LIBS)
+
+# That's it, folks!
diff --git a/devices.map b/devices.map
index cec84ed..71a7c4d 100644
--- a/devices.map
+++ b/devices.map
@@ -1 +1,2 @@
(hd0) /dev/loop0
+(hd0,1) /dev/loop1
diff --git a/kernel-config b/kernel-config
index 4b05b77..5d50d05 100644
--- a/kernel-config
+++ b/kernel-config
@@ -1,18 +1,19 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.33.2
-# Thu Apr 22 10:13:08 2010
+# Linux kernel version: 2.6.33.3
+# Sat May 8 14:15:38 2010
#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
CONFIG_X86=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -21,13 +22,14 @@ CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
@@ -37,16 +39,15 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ZONE_DMA32 is not set
+CONFIG_ZONE_DMA32=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_AUDIT_ARCH is not set
+CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_X86_32_LAZY_GS=y
-CONFIG_KTIME_SCALAR=y
+# CONFIG_KTIME_SCALAR is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
@@ -98,7 +99,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
-CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -115,11 +115,13 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
@@ -143,13 +145,12 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y
# GCOV-based kernel profiling
#
# CONFIG_SLOW_WORK is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
-CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_BLK_DEV_INTEGRITY is not set
@@ -201,16 +202,16 @@ CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
-# CONFIG_X86_RDC321X is not set
+# CONFIG_X86_VSMP is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
-CONFIG_M486=y
+# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
@@ -234,59 +235,66 @@ CONFIG_M486=y
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
-CONFIG_X86_GENERIC=y
+CONFIG_GENERIC_CPU=y
CONFIG_X86_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_F00F_BUG=y
CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-# CONFIG_HPET_TIMER is not set
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
+CONFIG_GART_IOMMU=y
+# CONFIG_AMD_IOMMU is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
# CONFIG_IOMMU_API is not set
CONFIG_NR_CPUS=1
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
-# CONFIG_X86_UP_APIC is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
-# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
-CONFIG_VM86=y
-# CONFIG_TOSHIBA is not set
+CONFIG_X86_THERMAL_VECTOR=y
# CONFIG_I8K is not set
-# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
-CONFIG_NOHIGHMEM=y
-# CONFIG_HIGHMEM4G is not set
-# CONFIG_HIGHMEM64G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-# CONFIG_X86_PAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ILLEGAL_POINTER_VALUE=0
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
@@ -296,7 +304,6 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW_64K=y
-# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
@@ -313,12 +320,12 @@ CONFIG_HZ_250=y
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x100000
-# CONFIG_COMPAT_VDSO is not set
+CONFIG_PHYSICAL_ALIGN=0x1000000
# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management and ACPI options
@@ -355,29 +362,26 @@ CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
#
+# Memory power savings
+#
+
+#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_STUB is not set
+CONFIG_HT_IRQ=y
# CONFIG_PCI_IOV is not set
CONFIG_PCI_IOAPIC=y
CONFIG_ISA_DMA_API=y
-# CONFIG_ISA is not set
-# CONFIG_MCA is not set
-# CONFIG_SCx200 is not set
-# CONFIG_OLPC is not set
+CONFIG_K8_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
@@ -386,10 +390,10 @@ CONFIG_ISA_DMA_API=y
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
+# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
-CONFIG_HAVE_ATOMIC_IOMAP=y
+# CONFIG_IA32_EMULATION is not set
+# CONFIG_COMPAT_FOR_U64_ALIGNMENT is not set
CONFIG_NET=y
#
@@ -539,8 +543,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_CS5535 is not set
-# CONFIG_BLK_DEV_CS5536 is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
@@ -764,8 +766,6 @@ CONFIG_RTC=y
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
-# CONFIG_NSC_GPIO is not set
-# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set
@@ -1128,8 +1128,6 @@ CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_4KSTACKS is not set
-CONFIG_DOUBLEFAULT=y
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
diff --git a/miniperlmain.c b/miniperlmain.c
new file mode 100644
index 0000000..b2bf288
--- /dev/null
+++ b/miniperlmain.c
@@ -0,0 +1,174 @@
+/* miniperlmain.c
+ *
+ * Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+ * 2004, 2005, 2006, 2007, by Larry Wall and others
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ */
+
+/*
+ * The Road goes ever on and on
+ * Down from the door where it began.
+ *
+ * [Bilbo on p.35 of _The Lord of the Rings_, I/i: "A Long-Expected Party"]
+ * [Frodo on p.73 of _The Lord of the Rings_, I/iii: "Three Is Company"]
+ */
+
+/* This file contains the main() function for the perl interpreter.
+ * Note that miniperlmain.c contains main() for the 'miniperl' binary,
+ * while perlmain.c contains main() for the 'perl' binary.
+ *
+ * Miniperl is like perl except that it does not support dynamic loading,
+ * and in fact is used to build the dynamic modules needed for the 'real'
+ * perl executable.
+ */
+
+#ifdef OEMVS
+#ifdef MYMALLOC
+/* sbrk is limited to first heap segment so make it big */
+#pragma runopts(HEAP(8M,500K,ANYWHERE,KEEP,8K,4K) STACK(,,ANY,) ALL31(ON))
+#else
+#pragma runopts(HEAP(2M,500K,ANYWHERE,KEEP,8K,4K) STACK(,,ANY,) ALL31(ON))
+#endif
+#endif
+
+
+#include "EXTERN.h"
+#define PERL_IN_MINIPERLMAIN_C
+#include "perl.h"
+
+static void xs_init (pTHX);
+static PerlInterpreter *my_perl;
+
+#if defined (atarist)
+/* The Atari operating system doesn't have a dynamic stack. The
+ stack size is determined from this value. */
+long _stksize = 64 * 1024;
+#endif
+
+#if defined(PERL_GLOBAL_STRUCT_PRIVATE)
+/* The static struct perl_vars* may seem counterproductive since the
+ * whole idea PERL_GLOBAL_STRUCT_PRIVATE was to avoid statics, but note
+ * that this static is not in the shared perl library, the globals PL_Vars
+ * and PL_VarsPtr will stay away. */
+static struct perl_vars* my_plvarsp;
+struct perl_vars* Perl_GetVarsPrivate(void) { return my_plvarsp; }
+#endif
+
+#ifdef NO_ENV_ARRAY_IN_MAIN
+extern char **environ;
+int
+main(int argc, char **argv)
+#else
+int
+main(int argc, char **argv, char **env)
+#endif
+{
+ dVAR;
+ int exitstatus, i;
+#ifdef PERL_GLOBAL_STRUCT
+ struct perl_vars *plvarsp = init_global_struct();
+# ifdef PERL_GLOBAL_STRUCT_PRIVATE
+ my_vars = my_plvarsp = plvarsp;
+# endif
+#endif /* PERL_GLOBAL_STRUCT */
+ (void)env;
+#ifndef PERL_USE_SAFE_PUTENV
+ PL_use_safe_putenv = 0;
+#endif /* PERL_USE_SAFE_PUTENV */
+
+ /* if user wants control of gprof profiling off by default */
+ /* noop unless Configure is given -Accflags=-DPERL_GPROF_CONTROL */
+ PERL_GPROF_MONCONTROL(0);
+
+#ifdef NO_ENV_ARRAY_IN_MAIN
+ PERL_SYS_INIT3(&argc,&argv,&environ);
+#else
+ PERL_SYS_INIT3(&argc,&argv,&env);
+#endif
+
+#if defined(USE_ITHREADS)
+ /* XXX Ideally, this should really be happening in perl_alloc() or
+ * perl_construct() to keep libperl.a transparently fork()-safe.
+ * It is currently done here only because Apache/mod_perl have
+ * problems due to lack of a call to cancel pthread_atfork()
+ * handlers when shared objects that contain the handlers may
+ * be dlclose()d. This forces applications that embed perl to
+ * call PTHREAD_ATFORK() explicitly, but if and only if it hasn't
+ * been called at least once before in the current process.
+ * --GSAR 2001-07-20 */
+ PTHREAD_ATFORK(Perl_atfork_lock,
+ Perl_atfork_unlock,
+ Perl_atfork_unlock);
+#endif
+
+ if (!PL_do_undump) {
+ my_perl = perl_alloc();
+ if (!my_perl)
+ exit(1);
+ perl_construct(my_perl);
+ PL_perl_destruct_level = 0;
+ }
+ PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
+ exitstatus = perl_parse(my_perl, xs_init, argc, argv, (char **)NULL);
+ if (!exitstatus)
+ perl_run(my_perl);
+
+#if 0
+ /* Unregister our signal handler before destroying my_perl */
+ for (i = 0; PL_sig_name[i]; i++) {
+ if (rsignal_state(PL_sig_num[i]) == (Sighandler_t) PL_csighandlerp) {
+ rsignal(PL_sig_num[i], (Sighandler_t) SIG_DFL);
+ }
+ }
+#endif
+
+ exitstatus = perl_destruct(my_perl);
+
+ perl_free(my_perl);
+
+#if defined(USE_ENVIRON_ARRAY) && defined(PERL_TRACK_MEMPOOL) && !defined(NO_ENV_ARRAY_IN_MAIN)
+ /*
+ * The old environment may have been freed by perl_free()
+ * when PERL_TRACK_MEMPOOL is defined, but without having
+ * been restored by perl_destruct() before (this is only
+ * done if destruct_level > 0).
+ *
+ * It is important to have a valid environment for atexit()
+ * routines that are eventually called.
+ */
+ environ = env;
+#endif
+
+#ifdef PERL_GLOBAL_STRUCT
+ free_global_struct(plvarsp);
+#endif /* PERL_GLOBAL_STRUCT */
+
+ PERL_SYS_TERM();
+
+ exit(exitstatus);
+ return exitstatus;
+}
+
+/* Register any extra external extensions */
+
+/* Do not delete this line--writemain depends on it */
+
+static void
+xs_init(pTHX)
+{
+ PERL_UNUSED_CONTEXT;
+ dXSUB_SYS;
+}
+
+/*
+ * Local variables:
+ * c-indentation-style: bsd
+ * c-basic-offset: 4
+ * indent-tabs-mode: t
+ * End:
+ *
+ * ex: set ts=8 sts=4 sw=4 noet:
+ */