นี่คือคำสั่ง perlsolaris ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
perlsolaris - Perl เวอร์ชัน 5 บนระบบ Solaris
DESCRIPTION
เอกสารนี้อธิบายคุณสมบัติต่างๆ ของระบบปฏิบัติการ Solaris ของ Sun ที่จะ
ส่งผลต่อวิธีการคอมไพล์และ/หรือรัน Perl เวอร์ชัน 5 (ต่อจากนี้ไปคือ Perl) บางประเด็น
ที่เกี่ยวข้องกับ SunOS 4.x รุ่นเก่าก็ถูกกล่าวถึงเช่นกัน แม้ว่าอาจจะล้าสมัย
ส่วนใหญ่ทุกอย่างควรจะใช้งานได้
เริ่มต้นด้วย Solaris 8 perl5.00503 (หรือสูงกว่า) จะมาพร้อมกับระบบปฏิบัติการ ดังนั้น
คุณอาจไม่จำเป็นต้องสร้าง Perl เวอร์ชันใหม่เลยด้วยซ้ำ เวอร์ชันที่ดวงอาทิตย์จัดหา
ถูกติดตั้งใน /usr/perl5 with /usr/bin/perl ชี้ไปที่ /usr/perl5/bin/perl. อย่า
รบกวนการติดตั้งนั้นเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่ หากคุณลบ
perl ที่มาพร้อมกับระบบปฏิบัติการ คุณจะทำให้บางส่วนของระบบของคุณใช้งานไม่ได้ ถ้าคุณ
ต้องการติดตั้ง Perl เวอร์ชันใหม่กว่า ให้ติดตั้งโดยใช้คำนำหน้าที่แตกต่างจาก
/usr/perl5. คำนำหน้าทั่วไปที่ใช้คือ / usr / local และ /opt/perl.
คุณอาจต้องการใส่เวอร์ชันของ Perl ใน PATH ของผู้ใช้ทั้งหมดโดยเปลี่ยนลิงก์
/usr/bin/perl. นี่น่าจะใช้ได้ เนื่องจากสคริปต์ Perl ส่วนใหญ่ที่มาพร้อมกับ Solaris ใช้ an
เส้นทางที่ชัดเจน (มีข้อยกเว้นบางประการ เช่น /usr/bin/rpm2cpio และ
/etc/rcm/scripts/READMEแต่สิ่งเหล่านี้ก็เพียงพอแล้วสำหรับเวอร์ชั่นจริง
ของ Perl อาจไม่มีความสำคัญมากเกินไป)
Solaris มาพร้อมกับโมดูลเฉพาะของ Solaris ที่หลากหลาย หากคุณเลือกติดตั้งเอง
เวอร์ชันของ Perl คุณจะพบแหล่งที่มาของโมดูลเหล่านี้จำนวนมากที่มีอยู่ในCPAN
ภายใต้ดวงอาทิตย์::Solaris:: เนมสเปซ
Solaris อาจรวม Perl สองเวอร์ชัน เช่น Solaris 9 มีทั้ง 5.005_03 และ 5.6.1
ทั้งนี้เพื่อให้เกิดความเสถียรในรุ่น Solaris ในกรณีที่ Perl เวอร์ชันที่ใหม่กว่า
มีความเข้ากันไม่ได้กับเวอร์ชันที่รวมอยู่ใน Solaris รุ่นก่อนหน้า ดิ
เวอร์ชัน Perl เริ่มต้นจะเป็นเวอร์ชันล่าสุดเสมอ และโดยทั่วไปเวอร์ชันเก่าจะ
จะถูกเก็บไว้สำหรับรุ่น Solaris หนึ่งรุ่นเท่านั้น โปรดทราบว่า Perl เริ่มต้นจะไม่เป็น
กำหนดค่าให้ค้นหาโมดูลในเวอร์ชันเก่าอีกครั้งเนื่องจาก
ข้อกังวลด้านความเข้ากันได้/ความเสถียร ดังนั้น หากคุณอัพเกรด Solaris คุณจะมี
เพื่อสร้างใหม่/ติดตั้งโมดูล CPAN เพิ่มเติมใดๆ ที่คุณติดตั้งสำหรับรุ่นก่อนหน้า
รุ่นโซลาริส ดูหน้าจัดการ CPAN ภายใต้ 'autobundle' เพื่อดูวิธีที่รวดเร็วในการทำเช่นนี้
เพื่อเป็นมาตรการชั่วคราว คุณสามารถเปลี่ยน #! บรรทัดของสคริปต์ของคุณโดยเฉพาะ
อ้างถึง Perl เวอร์ชันเก่า เช่น Solaris 9 ใช้ #!/usr/perl5/5.00503/bin/perl เพื่อใช้
เวอร์ชัน Perl ที่เป็นค่าเริ่มต้นสำหรับ Solaris 8 หรือหากคุณมี . จำนวนมาก
สคริปต์อาจสะดวกกว่าในการทำให้ Perl เวอร์ชันเก่าเป็นค่าเริ่มต้นบน your
ระบบ. คุณสามารถทำได้โดยเปลี่ยน symlink ที่เหมาะสมภายใต้ /usr/perl5 ดังนี้
(ตัวอย่างสำหรับ Solaris 9):
# ซีดี /usr/perl5
#อาร์เอ็มบินมันพอด
# ln -s ./5.00503/ถัง
# ln -s ./5.00503/ผู้ชาย
# ln -s ./5.00503/lib/pod
#rm /usr/bin/perl
# ln -s ../perl5/5.00503/bin/perl /usr/bin/perl
ในทั้งสองกรณี ควรพิจารณาให้เป็นมาตรการชั่วคราวเท่านั้น - คุณควร
อัปเกรดเป็น Perl เวอร์ชันที่ใหม่กว่าทันทีที่ทำได้
โปรดทราบด้วยว่ายูทิลิตี้บรรทัดคำสั่ง perl (เช่น perldoc) และสิ่งที่เพิ่มโดย
โมดูลที่คุณติดตั้งจะอยู่ภายใต้ /usr/perl5/bin ดังนั้นควรเพิ่มไดเร็กทอรี
สู่เส้นทางของคุณ
Solaris เวอร์ชั่น เบอร์
เพื่อให้สอดคล้องกับการใช้งานทั่วไป สคริปต์กำหนดค่าของ Perl จะดำเนินการเล็กน้อย
การจัดการกับชื่อระบบปฏิบัติการและหมายเลขเวอร์ชันตามที่รายงานโดย uname
นี่คือตารางการแปลบางส่วน:
อาทิตย์: perl's กำหนดค่า:
uname uname -r ชื่อ osname osvers
SunOS 4.1.3 Solaris 1.1 ซันโนส 4.1.3
SunOS 5.6 Solaris 2.6 โซลาริส 2.6
SunOS 5.8 Solaris 8 โซลาริส 2.8
SunOS 5.9 Solaris 9 โซลาริส 2.9
SunOS 5.10 Solaris 10 โซลาริส 2.10
ดูตารางทั้งหมดได้ในคำถามที่พบบ่อยของ Sun Manager
<ftp://ftp.cs.toronto.edu/pub/jdd/sunmanagers/faq> ภายใต้ "9.1) ซันรุ่นใดทำงานซึ่ง
รุ่นของ SunOS?
ทรัพยากร
มีแหล่งข้อมูล Solaris มากมาย สิ่งสำคัญบางประการสำหรับ
เพิร์ล:
คำถามที่พบบ่อยเกี่ยวกับ Solaris
คำถามที่พบบ่อยของ Solaris มีอยู่ที่http://www.science.uva.nl/pub/solaris/solaris2.html>.
ดูคำถามที่พบบ่อยของ Sun Managers ได้ที่
<ftp://ftp.cs.toronto.edu/pub/jdd/sunmanagers/faq>
ไบนารีที่คอมไพล์แล้ว
ไบนารีที่คอมไพล์แล้ว ลิงก์ไปยังไซต์ต่างๆ และอื่นๆ อีกมากมายมีอยู่ที่
<http://www.sunfreeware.com/> และhttp://www.blastwave.org/>.
เอกสาร Solaris
เอกสาร Solaris ทั้งหมดมีให้ทางออนไลน์ที่http://docs.sun.com/>.
การตั้งค่า UP
เนื้อไม่มีมัน การสกัด ปัญหา on โซลาริส.
อย่าลืมใช้โปรแกรม tar ที่คอมไพล์ภายใต้ Solaris (ไม่ใช่ SunOS 4.x) เพื่อแตกไฟล์
ไฟล์ perl-5.xxtar.gz อย่าใช้ GNU tar ที่คอมไพล์สำหรับ SunOS4 บน Solaris (GNU tar .)
คอมไพล์สำหรับ Solaris ควรจะใช้ได้) เมื่อคุณรันไบนารี SunOS4 บน Solaris รัน-
ระบบเวลาเปลี่ยนชื่อพา ธ ที่ตรงกันอย่างน่าอัศจรรย์ m#lib/locale# เพื่อที่ว่าเมื่อ tar พยายาม
สร้าง lib/locale.pm ไฟล์ชื่อ lib/oldlocale.pm จะถูกสร้างขึ้นแทน หากคุณพบว่า
คำแนะนำนี้สายเกินไปและใช้ tar ที่คอมไพล์ด้วย SunOS4 แล้วคุณต้องค้นหาอย่างไม่ถูกต้อง
เปลี่ยนชื่อไฟล์แล้วย้ายกลับไปที่ lib/locale.pm
ผู้รวบรวม และ ที่เกี่ยวข้อง เครื่องมือ on โซลาริส.
คุณต้องใช้คอมไพเลอร์ ANSI C เพื่อสร้าง Perl Perl สามารถคอมไพล์ได้ด้วย Sun's
คอมไพเลอร์เสริม C หรือด้วย gcc คอมไพเลอร์ C ที่มาพร้อมกับ SunOS4 จะไม่ทำ
เพิ่ม /usr/ccs/bin/ in ธุรกิจ เส้นทาง.
เครื่องมือหลายอย่างที่จำเป็นในการสร้าง Perl จะอยู่ใน /usr/ccs/bin/: ar, as, ld และ make
ตรวจสอบให้แน่ใจว่า /usr/ccs/bin/ อยู่ใน PATH ของคุณ
ใน Solaris เวอร์ชันที่วางจำหน่ายทั้งหมด (8, 9 และ 10) คุณต้องแน่ใจว่าสิ่งต่อไปนี้
ติดตั้งแพ็คเกจแล้ว (ข้อมูลนี้ดึงมาจากคำถามที่พบบ่อยของ Solaris):
สำหรับเครื่องมือ (sccs, lex, yacc, make, nm, truss, ld, as): SUNWbtool, SUNWsprot, SUNWtoo
สำหรับไลบรารีและส่วนหัว: SUNWhea, SUNWarc, SUNWlibm, SUNWlibms, SUNWdfbh, SUNWcg6h,
SUNWxwinc
นอกจากนี้ ใน Solaris 8 และ 9 คุณต้องมี:
สำหรับการพัฒนา 64 บิต: SUNWarcx, SUNWbtoox, SUNWdplx, SUNWscpux, SUNWsprox, SUNWtoox,
SUNWlmsx, SUNWlmx, SUNWlibCx
และเฉพาะใน Solaris 8 เท่านั้นที่คุณต้องการ:
สำหรับไลบรารีและส่วนหัว: SUNWolinc
หากคุณสงสัยว่าแพ็คเกจใดมีไฟล์ที่คุณหายไป ให้ลองค้นหา an
การติดตั้งที่มีไฟล์นั้น จากนั้นทำ
$ grep /my/missing/file /var/sadm/install/contents
ซึ่งจะแสดงบรรทัดดังนี้:
/usr/include/sys/errno.hf none 0644 root bin 7471 37605 956241356 SUNWhea
รายการสุดท้ายที่แสดง (SUNWea ในตัวอย่างนี้) คือแพ็คเกจที่คุณต้องการ
หลีกเลี่ยง /usr/ucb/ซีซี.
คุณไม่จำเป็นต้องมี /usr/ucb/ ใน PATH ของคุณเพื่อสร้าง Perl หากคุณต้องการ /usr/ucb/ in
PATH ของคุณ ตรวจสอบให้แน่ใจว่า /usr/ucb/ ไม่ได้อยู่ใน PATH ของคุณก่อนไดเรกทอรี
มีคอมไพเลอร์ C ที่ถูกต้อง
ซัน C ผู้รวบรวม
หากคุณใช้คอมไพเลอร์ C ของ Sun ตรวจสอบให้แน่ใจว่าไดเร็กทอรีที่ถูกต้อง (โดยปกติคือ /opt/SUNWspro/bin/)
อยู่ใน PATH ของคุณ (ก่อน /usr/ucb/)
GCC
หากคุณใช้ gcc ตรวจสอบให้แน่ใจว่าการติดตั้งของคุณเป็นเวอร์ชันล่าสุดและเสร็จสมบูรณ์ รุ่น perl ตั้งแต่
5.6.0 สร้างได้ดีด้วย gcc > 2.8.1 บน Solaris >= 2.6
คุณต้องกำหนดค่า Perl ด้วย
$ sh กำหนดค่า -Dcc=gcc
ไม่เช่นนั้น คุณอาจพบข้อผิดพลาดของบิลด์ที่แปลกประหลาด
หากคุณได้อัปเดตเวอร์ชัน Solaris ของคุณแล้ว คุณอาจต้องอัปเดต gcc ด้วย สำหรับ
ตัวอย่างเช่น หากคุณใช้งาน Solaris 2.6 และ gcc ของคุณได้รับการติดตั้งภายใต้ / usr / localตรวจสอบ
ใน /usr/local/lib/gcc-lib และตรวจสอบให้แน่ใจว่าคุณมีไดเร็กทอรีที่เหมาะสม
sparc-sun-solaris2.6/ หรือ i386-pc-solaris2.6/ หากไดเร็กทอรีของ gcc เป็นไดเร็กทอรีอื่น
เวอร์ชันของ Solaris มากกว่าที่คุณใช้งานอยู่ จากนั้นคุณจะต้องสร้าง gcc ใหม่สำหรับเครื่องใหม่ของคุณ
รุ่น Solaris
คุณสามารถรับ gcc เวอร์ชันที่คอมไพล์ล่วงหน้าได้จากhttp://www.sunfreeware.com/> หรือ
<http://www.blastwave.org/>. ตรวจสอบให้แน่ใจว่าคุณได้เลือกแพ็คเกจสำหรับรุ่น Solaris ของคุณ
หากคุณต้องการใช้ gcc เพื่อสร้างโมดูลเสริมสำหรับใช้กับ Perl ที่จัดส่งมาพร้อมกับ Solaris
คุณควรใช้โมดูล Solaris::PerlGcc ซึ่งมีให้จาก CPAN Perl จัดส่งแล้ว
ด้วย Solaris ได้รับการกำหนดค่าและสร้างด้วยคอมไพเลอร์ Sun และคอมไพเลอร์
ข้อมูลการกำหนดค่าที่เก็บไว้ใน Config.pm จึงเกี่ยวข้องกับ Sun . เท่านั้น
คอมไพเลอร์ โมดูล Solaris:PerlGcc มีการแทนที่ Config.pm ที่ถูกต้อง
สำหรับ gcc - ดูโมดูลสำหรับรายละเอียด
GNU as และ GNU ld
ข้อมูลต่อไปนี้ใช้กับ gcc เวอร์ชัน 2 อาสาสมัครอัปเดตเป็น
เหมาะสมสำหรับ gcc เวอร์ชัน 3 จะได้รับการชื่นชม
เวอร์ชันของ as และ ld ที่มาพร้อมกับ Solaris ทำงานได้ดีสำหรับการสร้าง Perl มี
โดยปกติไม่จำเป็นต้องติดตั้งเวอร์ชัน GNU เพื่อคอมไพล์ Perl
หากคุณตัดสินใจที่จะเพิกเฉยต่อคำแนะนำนี้และใช้เวอร์ชัน GNU อยู่แล้ว ตรวจสอบให้แน่ใจว่า
พวกเขาค่อนข้างล่าสุด เวอร์ชันที่ใหม่กว่า 2.7 ดูเหมือนจะใหม่เพียงพอ แก่กว่า
เวอร์ชันต่างๆ อาจมีปัญหากับการโหลดแบบไดนามิก
หากคุณต้องการใช้ GNU ld คุณต้องส่งแฟล็ก -Wl,-E ไปให้ ดิ
ไฟล์คำใบ้/solaris_2.sh พยายามทำสิ่งนี้โดยอัตโนมัติโดยการตั้งค่า Configure . ต่อไปนี้
ตัวแปร
ccdlflags="$ccdlflags -Wl,-E"
lddlflags="$lddlflags -Wl,-E -G"
อย่างไรก็ตาม ในช่วงหลายปีที่ผ่านมา การเปลี่ยนแปลงใน gcc, GNU ld และ Solaris ld ทำให้ยากต่อ
ตรวจจับโดยอัตโนมัติว่า ld ใดถูกเรียกในที่สุด คุณอาจต้องแก้ไขด้วยตนเอง
config.sh และเพิ่มแฟล็ก -Wl,-E ด้วยตัวคุณเอง มิฉะนั้นให้รัน Configure แบบโต้ตอบและเพิ่ม
แฟล็กที่พร้อมท์ที่เหมาะสม
หาก gcc ของคุณได้รับการกำหนดค่าให้ใช้ GNU as และ ld แต่คุณต้องการใช้ตัว Solaris
แทนที่จะสร้าง Perl คุณจะต้องเพิ่ม -B/usr/ccs/bin/ ในบรรทัดคำสั่ง gcc
วิธีหนึ่งที่สะดวกในการทำคือกับ
$ sh กำหนดค่า -Dcc='gcc -B/usr/ccs/bin/'
โปรดทราบว่าจำเป็นต้องมีเครื่องหมายทับ ซึ่งจะส่งผลให้เกิดคำเตือนที่ไม่เป็นอันตรายเช่น
กำหนดค่าทำงาน:
gcc: คำนำหน้าพาธไฟล์ `/usr/ccs/bin/' ไม่เคยใช้
ข้อความเหล่านี้อาจถูกละเว้นอย่างปลอดภัย (โปรดทราบว่าสำหรับระบบ SunOS4 คุณต้องใช้
-B/bin/ แทน.)
หรือคุณสามารถใช้ตัวแปรสภาพแวดล้อม GCC_EXEC_PREFIX เพื่อให้แน่ใจว่า Sun's
as และ ld ถูกใช้ ศึกษาเอกสาร gcc ของคุณสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ -B
ตัวเลือกและตัวแปร GCC_EXEC_PREFIX
ดวงอาทิตย์ และ GNU ทำ
make ภายใต้ /usr/ccs/bin ทำงานได้ดีสำหรับการสร้าง Perl หากคุณมีดวงอาทิตย์ C
คอมไพเลอร์ คุณจะมี make (dmake) รุ่นคู่ขนานกัน มันใช้ได้ดีกับ
สร้าง Perl แต่บางครั้งอาจทำให้เกิดปัญหาเมื่อเรียกใช้ 'ทำการทดสอบ' เนื่องจาก
underspecified การพึ่งพาระหว่างไฟล์ชุดทดสอบที่แตกต่างกัน ปัญหาเดียวกัน
ยังสามารถส่งผลกระทบต่อการสร้างโมดูลเสริมบางโมดูล ดังนั้นในกรณีดังกล่าว ให้ระบุ '-m
serial' บนบรรทัดคำสั่ง dmake หรือใช้ /usr/ccs/bin/make แทน หากคุณต้องการใช้
GNU ทำให้แน่ใจว่าไม่ได้ตั้งค่าบิต set-group-id ถ้าใช่ ให้จัด PATH . ของคุณ
เพื่อให้ /usr/ccs/bin/make อยู่ก่อน GNU make หรืออย่างอื่นปิดการใช้งานผู้ดูแลระบบ
set-group-id บิตบน GNU make
หลีกเลี่ยง ลิบัค
Solaris มีฟังก์ชันที่เข้ากันได้กับ BSD ใน /usr/ucblib/libucb.a Perl จะไม่
สร้างและรันอย่างถูกต้องหากเชื่อมโยงกับ -lucb เนื่องจากมีรูทีนที่
เข้ากันไม่ได้กับ Solaris libc มาตรฐาน โดยปกตินี่ไม่ใช่ปัญหาเนื่องจาก
ไฟล์คำใบ้ของ Solaris ป้องกัน Configure ไม่ให้มองหาไลบรารี่ /usr/ucblib และ
ยังละเว้น -lucb อย่างชัดเจน
สภาพสิ่งแวดล้อม for กำลังรวบรวม Perl on Solaris
เส้นทาง
ตรวจสอบให้แน่ใจว่า PATH ของคุณมีคอมไพเลอร์ (/opt/SUNWspro/bin/ หากคุณใช้ Sun's
คอมไพเลอร์) เช่นเดียวกับ /usr/ccs/bin/ เพื่อรับเครื่องมือการพัฒนาอื่น ๆ (เช่น make,
ar เป็น และ ld) ตรวจสอบให้แน่ใจว่าเส้นทางของคุณไม่มี /usr/ucb หรือที่รวม
มันต่อจากเครื่องมือคอมไพเลอร์และคอมไพเลอร์และไดเร็กทอรี Solaris มาตรฐานอื่นๆ คุณ
ไม่ต้องการอย่างแน่นอน /usr/ucb/cc.
LD_LIBRARY_PATH
หากคุณมีชุดตัวแปรสภาพแวดล้อม LD_LIBRARY_PATH ตรวจสอบให้แน่ใจว่าไม่ได้รวม
/ lib หรือ /usr/lib. หากคุณกำลังจะสร้างส่วนขยายที่เรียกบุคคลที่สามที่ใช้ร่วมกัน
ไลบรารี (เช่น Berkeley DB) จากนั้นตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม LD_LIBRARY_PATH ของคุณ
รวมไดเร็กทอรีที่มีไลบรารีนั้น (เช่น / usr / local / lib).
ถ้าคุณได้รับข้อความแสดงข้อผิดพลาด
dlopen: การสกัดกั้นต้นขั้วล้มเหลว
อาจเป็นเพราะตัวแปรสภาพแวดล้อม LD_LIBRARY_PATH ของคุณมีไดเร็กทอรี
ซึ่งเป็นสัญลักษณ์เชื่อมโยงถึง / usr / lib (เช่น / lib). สาเหตุที่ทำให้เกิดปัญหาค่อนข้างมาก
บอบบาง ไฟล์ libdl.so.1.0 จริง ๆ แล้ว * เท่านั้น * มีฟังก์ชันที่สร้าง 'stub
การสกัดกั้นล้มเหลว' ข้อผิดพลาด! ตัวเชื่อมโยงรันไทม์สกัดกั้นลิงก์ไปยัง
"/usr/lib/libdl.so.1.0" และลิงก์ในการใช้งานภายในของฟังก์ชันเหล่านั้นแทน
[ขอบคุณ Tim Bunce สำหรับคำอธิบายนี้]
วิ่ง กำหนดค่า
ดูไฟล์ INSTALL สำหรับข้อมูลทั่วไปเกี่ยวกับการกำหนดค่า เฉพาะ Solaris เท่านั้น
ประเด็นที่จะกล่าวถึงที่นี่ โดยปกติ ค่าเริ่มต้นควรจะใช้ได้
64 บิต Perl on โซลาริส.
ดูไฟล์ INSTALL สำหรับข้อมูลทั่วไปเกี่ยวกับการคอมไพล์ 64 บิต โดยทั่วไป
ค่าเริ่มต้นควรจะใช้ได้สำหรับคนส่วนใหญ่
โดยค่าเริ่มต้น perl-5.6.0 (หรือใหม่กว่า) จะถูกคอมไพล์เป็นแอปพลิเคชัน 32 บิตที่มีไฟล์ขนาดใหญ่และ
การสนับสนุนที่ยาวนาน
ทั่วไป 32 บิต เมื่อเทียบกับ 64 บิต ปัญหา
Solaris 7 ขึ้นไปจะทำงานในโหมด 32 บิตหรือ 64 บิตบน SPARC CPU ผ่านการรีบูต
คุณสามารถสร้างแอพ 64 บิตในขณะที่ใช้งานโหมด 32 บิตและในทางกลับกัน แอพ 32 บิตจะทำงาน
ภายใต้ Solaris ทำงานในโหมด 32 หรือ 64 บิต แอพ 64 บิตต้องการให้ Solaris เป็น
กำลังรันโหมด 64 บิต
แอพ 32 บิตที่มีอยู่นั้นรู้จักกันอย่างถูกต้องในชื่อ LP32 เช่น Longs และ Pointers คือ 32 บิต
แอพ 64 บิตนั้นรู้จักกันดีในชื่อ LP64 คุณลักษณะการเลือกปฏิบัติของแอป LP64 บิต
คือความสามารถในการใช้พื้นที่ที่อยู่ 64 บิต เป็นไปได้อย่างยิ่งที่จะมี LP32
แอพบิตที่รองรับทั้งจำนวนเต็ม 64 บิต (แบบยาว) และไฟล์ขนาดใหญ่ (> 2GB) และนี่คือ
ค่าเริ่มต้นสำหรับ perl-5.6.0
สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับปัญหา 64 บิต โปรดดูที่ "Solaris 64-bit Developer's
คู่มือ" athttp://docs.sun.com/>
คุณสามารถตรวจจับโหมด OS โดยใช้ "isainfo -v" เช่น
$ isainfo -v # Ultra 30 ในโหมด 64 บิต
แอปพลิเคชัน sparcv64 9 บิต
แอปพลิเคชั่น sparc 32 บิต
โดยค่าเริ่มต้น Perl จะถูกคอมไพล์เป็นแอปพลิเคชัน 32 บิต เว้นแต่ท่านต้องการจัดสรร
หน่วยความจำภายใน Perl มากกว่า ~ 4GB หรือเว้นแต่คุณต้องการไฟล์ที่เปิดมากกว่า 255 ไฟล์
descriptors คุณอาจไม่ต้องการ Perl เพื่อเป็นแอป 64 บิต
ใหญ่ เนื้อไม่มีมัน ระบบขอใช้บริการ
สำหรับ Solaris 2.6 ขึ้นไป มีสองวิธีที่แตกต่างกันสำหรับแอปพลิเคชัน 32 บิตถึง
จัดการไฟล์ขนาดใหญ่ (ไฟล์ที่มีขนาด > 2GByte) (แอปพลิเคชัน 64 บิต
มีการรองรับไฟล์ขนาดใหญ่โดยอัตโนมัติโดยค่าเริ่มต้น)
อย่างแรกคือ "สภาพแวดล้อมการรวบรวมช่วงเปลี่ยนผ่าน" อธิบายไว้ใน lfcompile64(5)
ตามหน้าคน,
สภาพแวดล้อมการรวบรวมในช่วงเปลี่ยนผ่านจะส่งออกทั้งหมด
ฟังก์ชัน 64 บิตที่ชัดเจน (xxx64()) และประเภทนอกเหนือจาก
ฟังก์ชั่นปกติทั้งหมด (xxx()) และประเภท ทั้ง xxx() และ
ฟังก์ชัน xxx64() สามารถใช้ได้กับแหล่งที่มาของโปรแกรม อา
แอปพลิเคชัน 32 บิตต้องใช้ฟังก์ชัน xxx64() ตามลำดับ
เพื่อเข้าถึงไฟล์ขนาดใหญ่ ดู lf64(5) หน้าคู่มือสำหรับ a
รายการที่สมบูรณ์ของอินเทอร์เฟซการเปลี่ยนผ่าน 64 บิต
สภาพแวดล้อมการคอมไพล์เฉพาะกาลได้มาจากคอมไพเลอร์ต่อไปนี้และ
ธงลิงเกอร์:
รับ LFS64_CFLAGS -D_LARGEFILE64_SOURCE
getconf LFS64_LDFLAG # ไม่มีอะไรพิเศษที่จำเป็น
getconf LFS64_LIBS # ไม่มีอะไรพิเศษที่จำเป็น
ประการที่สองคือ "สภาพแวดล้อมการรวบรวมไฟล์ขนาดใหญ่" ที่อธิบายไว้ใน lfcompile(5). ตาม
ไปที่หน้าคน
แต่ละอินเทอร์เฟซชื่อ xxx() ที่ต้องการเข้าถึงเอนทิตี 64 บิต
เพื่อเข้าถึงไฟล์ขนาดใหญ่แมปกับการโทร xxx64() ใน
ผลลัพธ์ไบนารี ประเภทข้อมูลที่เกี่ยวข้องทั้งหมดถูกกำหนดให้เป็น
ขนาดที่ถูกต้อง (เช่น off_t มีคำจำกัดความของ typedef
สำหรับเอนทิตี 64 บิต)
แอปพลิเคชันที่คอมไพล์ในสภาพแวดล้อมนี้สามารถใช้งานได้
xxx() source interfaces เพื่อเข้าถึงทั้งขนาดใหญ่และขนาดเล็ก
ไฟล์ แทนที่จะต้องใช้เฉพาะช่วงเปลี่ยนผ่าน
อินเทอร์เฟซ xxx64() เรียกใช้เพื่อเข้าถึงไฟล์ขนาดใหญ่
ข้อยกเว้นสองประการคือ ค้นหา() และ ฟุตเทลล์(). แอปพลิเคชั่น 32 บิตควรใช้ เฟเซโกะ(3C) และ
ฟเตลโล(3C). สิ่งเหล่านี้จะถูกแมปโดยอัตโนมัติไปยัง fseeko64() และ ftello64().
ได้สภาพแวดล้อมการรวบรวมไฟล์ขนาดใหญ่ด้วย
รับ LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
getconf LFS_LDFLAGS # ไม่มีอะไรพิเศษที่จำเป็น
getconf LFS_LIBS # ไม่มีอะไรพิเศษที่จำเป็น
โดยค่าเริ่มต้น Perl จะใช้สภาพแวดล้อมการรวบรวมไฟล์ขนาดใหญ่และอาศัย Solaris ที่ต้องทำ
การทำแผนที่พื้นฐานของอินเทอร์เฟซ
การก่อสร้าง an LP64 Perl
ในการรวบรวมแอปพลิเคชัน 64 บิตบน UltraSparc ด้วย Sun Compiler ล่าสุด คุณต้อง
ใช้แฟล็ก "-xarch=v9" รับคอนเฟิม(1) จะบอกคุณสิ่งนี้เช่น
$ getconf -a | เกรป v9
XBS5_LP64_OFF64_CFLAGS: -xarch=v9
XBS5_LP64_OFF64_LDFLAGS: -xarch=v9
XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9
XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9
XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9
XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9
_XBS5_LP64_OFF64_CFLAGS: -xarch=v9
_XBS5_LP64_OFF64_LDFLAGS: -xarch=v9
_XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9
_XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9
_XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9
_XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9
แฟล็กนี้ได้รับการสนับสนุนใน Sun WorkShop Compilers 5.0 ขึ้นไป (ตอนนี้วางตลาดภายใต้
ชื่อ Forte) เมื่อใช้กับ Solaris 7 หรือใหม่กว่าบนระบบ UltraSparc
หากคุณใช้ gcc คุณจะต้องใช้ -mcpu=v9 -m64 แทน ตัวเลือกนี้ยังไม่มี
รองรับตั้งแต่ gcc 2.95.2; จากการติดตั้ง/เฉพาะในรุ่นนั้น:
GCC เวอร์ชัน 2.95 ไม่สามารถคอมไพล์โค้ดได้อย่างถูกต้องสำหรับ sparc64
เป้าหมาย ผู้ใช้เคอร์เนล Linux อย่างน้อยก็สามารถใช้ sparc32 . ได้
โปรแกรมเพื่อเริ่มต้นการเรียกใช้เชลล์ใหม่ด้วยสภาพแวดล้อมที่
ทำให้การกำหนดค่ารับรู้ (ผ่าน uname -a) ระบบเป็น sparc-*-*
แทน.
ทั้งหมดนี้ควรได้รับการจัดการโดยอัตโนมัติโดยไฟล์คำใบ้ หากได้รับการร้องขอ
นาน คู่.
ณ 5.8.1 ตัวคูณแบบยาวใช้งานได้หากคุณใช้คอมไพเลอร์ Sun (จำเป็นสำหรับเพิ่มเติม
รูทีนทางคณิตศาสตร์ไม่รวมอยู่ใน libm)
Threads in Perl on โซลาริส.
สามารถสร้าง Perl เวอร์ชันเธรดบน Solaris ได้ เธรด Perl ทั้งหมด
การใช้งานยังคงเป็นการทดลอง ดังนั้นจงระวัง
มัลลอค ประเด็น กับ Perl on โซลาริส.
เริ่มต้นจาก perl 5.7.1 perl ใช้ Solaris malloc เนื่องจาก perl malloc แตกเมื่อ
จัดการกับหน่วยความจำมากกว่า 2GB และ Solaris malloc ก็ดูเหมือนจะเร็วกว่าเช่นกัน
หากคุณด้วยเหตุผลบางอย่าง (เช่นความเข้ากันได้แบบไบนารีย้อนหลัง) จำเป็นต้องใช้ perl's . จริงๆ
malloc คุณสามารถสร้าง Perl ใหม่จากแหล่งที่มาและกำหนดค่าบิลด์ด้วย
$ sh กำหนดค่า -Dusemymalloc
คุณไม่ควรใช้ malloc ของ perl หากคุณกำลังสร้างด้วย gcc มีรายงานของ core
ดัมพ์ โดยเฉพาะในโมดูล PDL ปัญหาดูเหมือนจะหมดไปภายใต้ -DDEBUGGING ดังนั้น
มันยากที่จะติดตาม คอมไพเลอร์ของซันดูเหมือนจะโอเคไม่ว่าจะมีหรือไม่มี
มัลลอคของเพิร์ล [XXX จำเป็นต้องมีการตรวจสอบเพิ่มเติมที่นี่]
MAKE ปัญหา.
ปัญหาการโหลดแบบไดนามิกด้วย GNU as และ GNU ld
หากคุณมีปัญหากับการโหลดแบบไดนามิกโดยใช้ gcc บน SunOS หรือ Solaris และคุณคือ
ใช้ GNU as และ GNU ld ดูส่วน "GNU as และ GNU ld" ด้านบน
ld.so.1: ./perl: ร้ายแรง: ข้อผิดพลาดในการย้ายตำแหน่ง:
หากคุณได้รับข้อความนี้บน SunOS หรือ Solaris และคุณกำลังใช้ gcc แสดงว่าอาจเป็น
ปัญหา GNU as หรือ GNU ld ในรายการก่อนหน้า "GNU as และ GNU ld"
dlopen: การสกัดกั้นต้นขั้วล้มเหลว
สาเหตุหลักของข้อความ 'dlopen: การสกัดกั้น stub ล้มเหลว' คือ
ตัวแปรสภาพแวดล้อม LD_LIBRARY_PATH รวมถึงไดเร็กทอรีที่เป็น symlink to
/ usr / lib (เช่น / lib). ดู "LD_LIBRARY_PATH" ด้านบน
#error "ไม่ได้ระบุ DATAMODEL_NATIVE"
นี่เป็นข้อผิดพลาดทั่วไปเมื่อพยายามสร้าง Perl บน Solaris 2.6 ด้วย gcc
การติดตั้งจาก Solaris 2.5 หรือ 2.5.1 ไฟล์ส่วนหัว Solaris เปลี่ยนไป ดังนั้นคุณต้อง
เพื่ออัปเดตการติดตั้ง gcc ของคุณ คุณสามารถเรียกใช้สคริปต์ fixincludes อีกครั้งจาก gcc
หรือใช้โอกาสนี้ในการอัปเดตการติดตั้ง gcc ของคุณ
sh: ar: ไม่พบ
นี่คือข้อความจากเชลล์ของคุณที่บอกคุณว่าไม่พบคำสั่ง 'ar'
คุณต้องตรวจสอบตัวแปรสภาพแวดล้อม PATH ของคุณเพื่อให้แน่ใจว่ามี
ไดเร็กทอรีด้วยคำสั่ง 'ar' นี่เป็นปัญหาทั่วไปใน Solaris โดยที่ 'ar' คือ
ในไดเร็กทอรี /usr/ccs/bin/
MAKE ทดสอบ
สหกรณ์/stat.t ทดสอบ 4 in Solaris
สหกรณ์/stat.t การทดสอบ 4 อาจล้มเหลวหากคุณใช้ tmpfs บางประเภท อาคารใน / Tmp บางครั้ง
แสดงให้เห็นพฤติกรรมนี้ ชุดทดสอบตรวจพบว่าคุณกำลังสร้างใน / Tmpแต่คงไม่ใช่
สามารถจับสถานการณ์ tmpfs ทั้งหมดได้
nss_delete แกน กอง รถในตำนานจากเกม สหกรณ์/pwent or op/gret
ดู "nss_delete core dump จาก op/pwent หรือ op/grent" ใน perlhpux
การรวบรวมข้าม
ไม่มีอะไรผิดปกติเกินไปที่นี่ คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายหากคุณมีครอสคอมไพเลอร์ที่พร้อมใช้งาน
การเรียกใช้ Configure ตามปกติเมื่อกำหนดเป้าหมาย Solaris x86 จะมีลักษณะดังนี้:
sh ./Configure -des -Dusecrosscompile \
-Dcc=i386-pc-solaris2.11-gcc \
-Dsysroot=$SYSROOT \
-Alddlflags=" -Wl,-z,notext" \
-Dtargethost=... # ตัวเลือกการคอมไพล์ข้ามปกติ
การเพิ่ม lddlflags เป็นบิตที่ผิดปกติเพียงอย่างเดียว
สร้างล่วงหน้า ไบนารี OF PERL สำหรับ โซลาริส
คุณสามารถเลือกไบนารีที่สร้างไว้ล่วงหน้าสำหรับ Solaris จากhttp://www.sunfreeware.com/>,
<http://www.blastwave.org>, ActiveStatehttp://www.activestate.com/>, และ
<http://www.perl.com/> ใต้รายการไบนารีที่ด้านบนของหน้า น่าจะมี
แหล่งอื่นด้วย โปรดทราบว่าไซต์เหล่านี้อยู่ภายใต้การควบคุมของ
เจ้าของที่เกี่ยวข้อง ไม่ใช่นักพัฒนา Perl
รันไทม์ ประเด็น สำหรับ PERL ON โซลาริส
ข้อ จำกัด on เบอร์ of จุดเปิด ไฟล์ on โซลาริส.
งานวิ่งการกุศล สตูดิโอ(3C) manpage สังเกตว่าสำหรับแอปพลิเคชัน LP32 สามารถเปิดไฟล์ได้เพียง 255 ไฟล์โดยใช้
เปิด ()และสามารถใช้ file descriptor 0 ถึง 255 ในสตรีมได้ ตั้งแต่ perl
โทร เปิด() แล้วก็ เปิด(3C) พร้อมตัวอธิบายไฟล์ที่เป็นผลลัพธ์ Perl ถูก จำกัด ไว้ที่
255 ไฟล์ที่เปิดพร้อมกันแม้ว่า ซิสเปิด() ถูกนำมาใช้. หากสิ่งนี้พิสูจน์ได้ว่าเป็น
ปัญหาที่ผ่านไม่ได้ คุณสามารถคอมไพล์ Perl เป็นแอปพลิเคชัน LP64 ดู "การสร้าง LP64
perl" สำหรับรายละเอียด โปรดทราบว่าการจำกัดทรัพยากรเริ่มต้นสำหรับตัวอธิบายไฟล์ที่เปิดอยู่
Solaris คือ 255 ดังนั้นคุณจะต้องแก้ไข ulimit หรือ rctl ของคุณ (Solaris 9 เป็นต้นไป)
อย่างเหมาะสม.
SOLARIS-จำเพาะ โมดูล
ดูโมดูลภายใต้เนมสเปซ Solaris:: และ Sun::Solaris บน CPAN ดู
<http://www.cpan.org/modules/by-module/Solaris/> และ
<http://www.cpan.org/modules/by-module/Sun/>.
SOLARIS-จำเพาะ ปัญหา กับ โมดูล
Proc::ProcTable on Solaris
Proc::ProcessTable ไม่ได้คอมไพล์บน Solaris ด้วย perl5.6.0 และสูงกว่าถ้าคุณมี
LARGEFILES กำหนดไว้ เนื่องจากการรองรับไฟล์ขนาดใหญ่เป็นค่าเริ่มต้นใน 5.6.0 และใหม่กว่า คุณมี
เพื่อดำเนินขั้นตอนพิเศษเพื่อใช้โมดูลนี้
ปัญหาคือโครงสร้างต่างๆ ที่มองเห็นได้ผ่าน procfs ใช้ off_t และถ้าคุณคอมไพล์
ด้วย largefile รองรับการเปลี่ยนแปลงเหล่านี้จาก 32 บิตเป็น 64 บิต ดังนั้นสิ่งที่คุณได้รับกลับมาจาก
procfs ไม่ตรงกับโครงสร้างใน Perl ทำให้เกิดขยะ ดู พรอค(4)
สำหรับการอภิปรายเพิ่มเติม
การแก้ไขสำหรับ Proc::ProcessTable คือการแก้ไข Makefile เพื่อลบแฟล็กไฟล์ขนาดใหญ่
จากที่ MakeMaker หยิบขึ้นมาจาก Config.pm ซึ่งจะส่งผลให้ Proc::ProcessTable
ถูกสร้างขึ้นภายใต้สภาพแวดล้อมที่ถูกต้อง ทุกอย่างควรจะโอเคตราบเท่าที่
Proc::ProcessTable ไม่ได้พยายามแชร์ off_t กับ Perl ที่เหลือ หรือหากเป็นเช่นนั้น
ควรระบุอย่างชัดเจนเป็น off64_t
BSD::ทรัพยากร on Solaris
BSD::ทรัพยากรเวอร์ชันก่อนหน้า 1.09 ไม่ได้คอมไพล์บน Solaris ด้วย Perl 5.6.0 และ
สูงกว่าด้วยเหตุผลเดียวกับ Proc::ProcessTable BSD::รุ่นทรัพยากรเริ่มต้นจาก
1.09 มีวิธีแก้ปัญหา
สุทธิ::SSLeay on Solaris
Net::SSLeay ต้องมี /dev/urandom อยู่ อุปกรณ์นี้สามารถใช้ได้จาก Solaris 9
เป็นต้นไป สำหรับ Solaris เวอร์ชันก่อนหน้า คุณสามารถรับแพ็คเกจ SUNWski (packaged
ด้วยผลิตภัณฑ์ซอฟต์แวร์ Sun หลายตัว เช่น Sun WebServer ซึ่งเป็นส่วนหนึ่งของ
Solaris Server Intranet Extension หรือ Sun Directory Services ซึ่งเป็นส่วนหนึ่งของ Solaris for
ISP) หรือดาวน์โหลดแพ็คเกจ ANDIrand จากhttp://www.cosy.sbg.ac.at/~andi/>. ถ้าคุณใช้
SUNWski สร้างลิงก์สัญลักษณ์ /dev/urandom ที่ชี้ไปที่ /dev/random ดูรายละเอียดเพิ่มเติมได้ที่
เอกสาร ID27606 เรื่อง "ข้อกำหนดการสนับสนุน /dev/random ที่แตกต่างกันภายใน Solaris[TM]
สภาพแวดล้อมการทำงาน" ได้ที่http://sunsolve.sun.com>.
อาจใช้ Entropy Gathering Daemon (เขียนเป็นภาษา Perl!) ได้จาก
<http://www.lothar.com/tech/crypto/>.
SunOS 4.x
ใน SunOS 4.x คุณอาจต้องการใช้ SunOS ld มากที่สุด /usr/bin/ld, ตั้งแต่มากขึ้น
GNU ld เวอร์ชันล่าสุด (เช่น 2.13) ดูเหมือนจะไม่ทำงานเพื่อสร้าง Perl อีกต่อไป เมื่อไหร่
เมื่อเชื่อมโยงส่วนขยาย GNU ld จะไม่พอใจอย่างมากและมีข้อผิดพลาดมากมายเช่นนี้
... ย้ายที่ตั้งถูกตัดให้พอดีกับ: BASE13 ...
และตาย ดังนั้นไฟล์คำแนะนำ SunOS 4.1 จึงตั้งค่า ld เป็น be . อย่างชัดเจน /usr/bin/ld.
ณ Perl 5.8.1 การโหลดไลบรารีแบบไดนามิก (DynaLoader, XSLoader) ก็ดูเหมือนว่าจะ
ถูกทำลายใน SunOS 4.x ดังนั้นค่าเริ่มต้นคือการสร้าง Perl แบบคงที่
การเรียกใช้ชุดทดสอบใน SunOS 4.1 นั้นค่อนข้างยุ่งยากเนื่องจาก lib/ผูก/ไฟล์/t/09_gen_rs
การทดสอบแฮงค์ (การทดสอบย่อย #51, FWIW) โดยไม่ทราบสาเหตุ แค่หยุดการทดสอบและฆ่ามัน
กระบวนการ Perl โดยเฉพาะ
มีความล้มเหลวอื่น ๆ อีกมากมายที่ SunOS 4.1.4 และ gcc 3.2.2 ดูเหมือนgcc .มาก
ข้อบกพร่อง ความล้มเหลวหลายอย่างเกิดขึ้นในการทดสอบเข้ารหัส เช่น เมื่อการทดสอบ
คาดว่า "0" คุณจะได้รับ "XNUMX" ซึ่งควรหลังจากเหล่เล็กน้อยดูแปลกมากอย่างแน่นอน
อีกตัวอย่างหนึ่งคือก่อนหน้าใน t/รัน/fresh_perl ที่ไหน chr(0xff) เป็นที่คาดหวัง แต่การทดสอบ
ล้มเหลวเพราะผลลัพธ์คือ chr(0xff). อย่างแน่นอน.
นี่คือผลลัพธ์ "ทำการทดสอบ" จากชุดค่าผสมดังกล่าว:
สคริปต์ทดสอบล้มเหลว 27 รายการจากทั้งหมด 745 รายการ ใช้ได้ 96.38%
การเรียกใช้ "สายรัด" นั้นเจ็บปวดเนื่องจากการทดสอบที่เกี่ยวข้องกับ Unicode ที่ล้มเหลวจำนวนมากจะ
เอาต์พุตเมกะไบต์ของข้อความล้มเหลว แต่ถ้าใครอดทนรอ จะได้รับผลลัพธ์เหล่านี้:
ล้มเหลว สถิติการทดสอบ Wstat รวมล้มเหลว รายการล้มเหลวของ Failed
-------------------------------------------------- ---------------------------
...
../ext/Encode/t/at-cn.t 4 1024 29 4 13.79% 14-17
../ext/Encode/t/at-tw.t 10 2560 17 10 58.82% 2 4 6 8 10 12
14-17
../ext/Encode/t/enc_data.t 29 7424 ?? - -
../ext/Encode/t/enc_eucjp.t 29 7424 ?? - -
../ext/Encode/t/enc_module.t 29 7424 ?? - -
../ext/Encode/t/encoding.t 29 7424 ?? - -
../ext/Encode/t/grow.t 12 3072 24 12 50.00% 2 4 6 8 10 12 14
16 18 20 22 24
ล้มเหลว สถิติการทดสอบ Wstat รวมล้มเหลว รายการล้มเหลวของ Failed
-------------------------------------------------- ----------------------------
../ext/Encode/t/guess.t 255 65280 29 40 137.93% 10-29
../ext/Encode/t/jperl.t 29 7424 15 30 200.00% 1-15
../ext/Encode/t/mime-header.t 2 512 10 2 20.00% 2-3
../ext/Encode/t/perlio.t 22 5632 38 22 57.89% 1-4 9-16 19-20
23-24 27-32
../ext/List/Util/t/shuffle.t 0 139 ?? - -
../ext/PerlIO/t/encoding.t 14 1 7.14% 11
../ext/PerlIO/t/fallback.t 9 2 22.22% 3 5
../ext/Socket/t/socketpair.t 0 2 45 70 155.56% 11-45
../lib/CPAN/t/vcmp.t 30 1 3.33% 25
../lib/Tie/File/t/09_gen_rs.t 0 15 ?? - -
../lib/Unicode/Colate/t/test.t 199 30 15.08% 7 26-27 71-75
81-88 95 101
103-104 106 108-
109 122 124 161
169-172
../lib/sort.t 0 139 119 26 21.85% 107-119
สหกรณ์/alarm.t 4 1 25.00% 4
op/utfhash.t 97 1 1.03% 31
เรียกใช้/fresh_perl.t 91 1 1.10% 32
ยูนิ/tr_7jis.t ?? ?? % ??
uni/tr_eucjp.t 29 7424 6 12 200.00% 1-6
uni/tr_sjis.t 29 7424 6 12 200.00% 1-6
ข้ามการทดสอบ 56 รายการและการทดสอบย่อย 467 รายการ
สคริปต์ทดสอบล้มเหลว 27/811 ไม่เป็นไร 96.67% การทดสอบย่อย 1383/75399 ล้มเหลว 98.17% โอเค
งานวิ่งการกุศล เตือน() ความล้มเหลวในการทดสอบเกิดจาก ระบบ() เห็นได้ชัดว่ากำลังปิดกั้น เตือน(). นั่นคือ
อาจเป็นข้อผิดพลาด libc และเนื่องจาก SunOS 4.x หมดอายุเมื่อหลายปีก่อนอย่าถือ
ลมหายใจของคุณสำหรับการแก้ไข นอกจากนั้น อย่าลองอะไรด้วย Unicode-y โดยเฉพาะ
ด้วยการเข้ารหัส และคุณน่าจะใช้ได้ใน SunOS 4.x
ใช้ perlsolaris ออนไลน์โดยใช้บริการ onworks.net