From 233b397411812d7c0105fad58522f5ae396c805d Mon Sep 17 00:00:00 2001 From: root Date: Sat, 8 May 2010 17:44:56 +0200 Subject: upgraded kernel to 2.6.33.3 fixed compilation of miniperl with perl 5.12.0 --- Makefile | 23 ++++---- Makefile.micro | 182 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ devices.map | 1 + kernel-config | 144 ++++++++++++++++++++++----------------------- miniperlmain.c | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 441 insertions(+), 83 deletions(-) create mode 100644 Makefile.micro create mode 100644 miniperlmain.c 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 @@ -354,30 +361,27 @@ CONFIG_X86_PM_TIMER=y 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: + */ -- cgit v1.2.3-54-g00ecf